asp.net-mvc – ASP.NET MVC模型/ ViewModel验证
发布时间:2021-02-20 17:13:26 所属栏目: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 – WebForms:MasterPages中的动态(或绝对)脚本标记
- asp.net文件上传解决方案(图片上传、单文件上传、多文件上
- 只需发布已修改的控制器,模型和ASP.NET MVC项目的某些部分
- asp.net – 访问.NET中的Web服务中的查询字符串(GET请求数组
- Asp.NetCore1.1版本去掉project.json后如何打包生成跨平台包
- asp.net 禁用viewstate在web.config里
- asp.net – Windows应用程序与Web应用程序开发
- asp.net-mvc-4 – .net 4.5 ASP.Net web API JSONP支持
- asp.net-mvc – 值不能为空或为空.参数名称:contentPath
- asp.net-mvc – Azure git部署 – 第二个程序集中缺少引用
推荐文章
站长推荐
- asp.net – 如果我没有指定targetFramework =“4
- asp.net-mvc – ie9:调试时出现恼人的弹出:“错
- 什么用于ASP.NET的成员资格
- 如何为Asp.Net中的所有子文件夹注册HttpHandler?
- 如何排序. .NET中的resx(资源文件)
- 使用asp.net中的web api通过http进行身份验证
- asp.net-mvc – 在ASP.NET MVC中实现工作单元的方
- asp.net-mvc – 在我的ASP.NET MVC网站中缓存不能
- asp.net – 获得“System.Web.Mvc.Html.MvcForm”
- asp.net-core – .net核心自定义身份验证中的Use
热点阅读