我创建了一个ASP.NET MVC 3 Web应用程序。该Web应用程序使用返回List的WebServices(asmx)。我创建了一个用于编辑实体的视图,如:
@model MvcSWTest.WSRef.entity
@{
ViewBag.Title = "Edit";
}
@using (Html.BeginForm()) {
<h2>Edit</h2>
@:Title:@Html.TextBoxFor(x=>x.title)<br />
@:Date:@Html.TextBoxFor(x => x.date)<br /><br />
<input type="submit" value="Send"/>
}
我想将“标题”设置为必填字段。我无法添加[Required]属性,因为“title”是在webservice上定义的。
有没有其他方法可以在视图或控制器中设置必填字段?
由于
答案 0 :(得分:0)
如果您无法调整实体类,则应定义自定义视图模型:
public class EntityModel
{
[Required]
public string Title { get; set; }
public DateTime Date { get; set; }
public EntityModel(MvcSWTest.WSRef.entity entity)
{
this.Title = entity.title;
this.Date = entity.date;
}
}
在从Web服务获取数据后立即在控制器中初始化它。您调整视图以EntityModel
作为模型,然后当您回发到控制器时,验证将检查Title
是否具有有效值,如果可以将EntityModel
转换为{ {1}},在发回数据之前。