asp.net-mvc – ASP.NET MVC模型/ ViewModel验证
发布时间:2020-05-23 02:02:12 所属栏目: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 – Visual Studio 2017错误:无法启动程序,在当前状
- asp.net – 如何在没有往返的情况下更新实体? (EF 4)
- ViewState在ASP.NET MVC中是否相关?
- ASP.NET MVC3(Razor)中的视图中局部变量的简单增量
- asp.net-mvc – Html.HiddenFor值属性未设置
- asp.net-mvc – 如何构建一个简单的ASP.NET MVC应用程序?
- 长时间运行的任务 – 最佳实践 – ASP.NET 4.0,C#
- asp.net – 实体框架4 – 从模型更新数据库模式 不擦拭表数
- 如何使用ASP.NET标识使声明无效?
- asp.net-mvc – 为什么ASP.Net MVC便携式区域不像Rails插件
推荐文章
站长推荐
- asp.net-mvc – 使用带有剃刀的html选择框
- asp.net-mvc – ASP.NET MVC Intellisense没有找
- .net – 使用log4net和在哪里实现它并使用elmah?
- asp.net-mvc-3 – @ Html.TextBoxFor文本框在验证
- asp.net-mvc – 如何使用ASP.NET MVC 3编辑IEnum
- ASP.NET MVC中是否有嵌套主页?
- asp.net-mvc – 如何让Visual Studio 2012检测虚
- asp.net-mvc – 在ASP.NET MVC中调用Session_End
- asp.net – 迁移匿名配置文件的最佳方式
- asp.net – 分布式事务完成 可以在新事务或NULL事
热点阅读
