2013-10-24 54 views
0

我已經創建了一個ASP.NET MVC 3 Web應用程序。該Web應用程序使用返回List的WebServices(asmx)。我創建了一個視圖來編輯實體,如:asp.net mvc - 來自webservice的必填字段

@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」是在web服務上定義的。

是否有任何其他方式來設置視圖或控制器中的必填字段?

感謝

回答

0

如果你無法適應你的實體類,你應該定義一個定製的視圖模型:從Web服務得到您的數據之後

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; 
    } 
} 

你在你的控制器初始化, 。您將視圖修改爲EntityModel作爲模型,然後當您發回控制器時,驗證將檢查Title是否具有有效值,如果可以,在將數據發送回去之前將EntityModel轉換爲MvcSWTest.WSRef.entity