asp.net mvc - 来自webservice的必填字段

时间:2013-10-24 15:00:22

标签: asp.net asp.net-mvc require

我创建了一个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上定义的。

有没有其他方法可以在视图或控制器中设置必填字段?

由于

1 个答案:

答案 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}},在发回数据之前。