asp.net-mvc – ASP.NET MVC模型/ ViewModel验证
发布时间:2021-02-20 18:47:06  所属栏目:asp.Net  来源:互联网 
            导读:我在 Linq-to-Sql中有模型类,其中部分类标有数据注释属性和对xVal的引用. 当我将视图直接绑定到模型时,一切都很好,xVal生成的JS和服务器端双重检查. 我的许多视图都没有输入到一个特定的模型,所以我正在设置视图模型类.我没有公开整个模型实例,而是将属性暴露
                
                
                
            | 
                         我在 Linq-to-Sql中有模型类,其中部分类标有数据注释属性和对xVal的引用. 当我将视图直接绑定到模型时,一切都很好,xVal生成的JS和服务器端双重检查. 我的许多视图都没有输入到一个特定的模型,所以我正在设置视图模型类.我没有公开整个模型实例,而是将属性暴露给我允许/需要由视图设置的模型. // foo model 
public class Foo {
    public string FooField { ... }
    public Bar Bar { ... }
}
// bar model,where bar is a parent relationship of foo in the db
public class Bar {
    public string BarField { ... }
}
// view model stuff
public class FooViewModel {
    private Foo foo;
    public FooViewModel() {
        foo = new Foo() { Bar = new Bar() };
    }
    public Foo Model {
        get { return foo; }
        set { foo = value; }
    }
    public string BarField { 
        get { return foo.Bar.BarField; }
        set { foo.Bar.BarField = value; }
    }
    public string ExtraViewModelField {
        get; set; 
    }
} 
 此方法正确填充视图模型类,并且存储库可以正确填充记录. 但它根本没有通过验证.我查看了发出的客户端代码,验证数组对于xval是空的.此外,IsValid的服务器端检查始终为true. 我是否可以通过视图模型的属性来获取数据注释以进行验证,或者我应该以另一种方式执行此操作? 解决方法如果您使用partials并传入子类型,则仍需要限定.见如下:<%@ Control Language="C#" 
                   Inherits="System.Web.Mvc.ViewUserControl<MvcWeb.Models.OrderDetail>" %>
<% using (Html.BeginForm()) { %>
    <fieldset>
        <legend>Fields</legend>
            <%= Html.Hidden("OrderId",Model.OrderId) %>
            <%= Html.Hidden("ProductId",Model.ProductId)%>
        <p>
            <label for="Quantity">Quantity:</label>
            <%= Html.TextBox("OrderDetails.Quantity",Model.Quantity)%>
            <%= Html.ValidationMessage("OrderDetails.Quantity","*") %>
        </p>
        <p>
            <input type="submit" value="Save" />
        </p>
    </fieldset>
<% } %> 
 请注意,类型是OrderDetails,但我仍然在前面处理验证消息. (编辑:莱芜站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!  | 
                  
相关内容
- asp.net – 如何以编程方式从LDAP检索信息
 - asp.net-mvc – 为什么Visual Studio崩溃打开ASPX与MVC RC1
 - asp.net – 我应该在哪里放置scriptmanager
 - .Net Core和RabbitMQ限制循环消费的方法
 - asp.net-mvc – 如何继承ASP.NET MVC控制器并仅更改视图?
 - ASP.Net Forms身份验证在10分钟后注销用户
 - asp.net汉字转拼音和获取汉字首字母的代码
 - asp.net(C#)把汉字转化成全拼音函数(全拼)
 - asp.net-mvc-3 – 局部视图中的RenderSection
 - asp.net-mvc – asp.net mvc – string或int的路由(即/ typ
 
推荐文章
            站长推荐
            - asp.net-mvc-3 – 用于ASP的Telerik扩展. NET MV
 - asp.net-mvc – 如何使用ASP.NET MVC ApiControl
 - asp.net-mvc – 如何在asp.net mvc3项目中开始使
 - asp.net-mvc – 帖子上的Mvc模型ID 0
 - 在ASP.NET中下载文件的实现代码
 - ASP.NET中读取XML文件信息的4种方法与示例代码
 - asp.net – 如何设置显示内联的Div元素的固定宽度
 - asp.net – jquery getJson没有将任何值传递给控
 - asp.net-mvc – MVC会话过期而不是身份验证
 - WPAD查询从ASP.NET调用webservice
 
热点阅读
            