2014-01-13 71 views
0

我想分配驗證消息動態顯示的標識。難道我做錯了什麼?爲驗證消息分配標識

<div>@Html.ValidationMessageFor(model => model.Title,new{id="prjTitle"})</div> 

它將引發參數類型是不能分配給參數字符串

回答

1

沒有重載只對LINQ表達式和一個HTML屬性對象。

根據MSDN存在過載,需要一個LINQ表達式,一個errormessage的(字符串)和一個HTML屬性對象,像這樣:

@Html.ValidationMessageFor(model => model.Title,"entry invalid",new{id="prjTitle"}) 
+0

它得到id來父跨度而不是錯誤消息跨度,如果我嘗試這種方式。下面是添加id後的html呈現方式,如上所示。 輸入項目標題 Kurkula

+1

我想所有剩下的就是編寫一個自定義驗證消息,如下所述:http://stackoverflow.com/a/8381685/1783240 – Stephen

1
public static MvcHtmlString IDValidationMessageFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, string id) 
    { 
     var validationString = Regex.Replace(htmlHelper.ValidationMessageFor(expression).ToString(), @"^data-valmsg-for=""*\""$", String.Format("data-valmsg-for=\"{0}\"", id)); 

     return MvcHtmlString.Create(validationString); 
    } 
+1

歡迎來到StackOverflow。你能否提供一些更多的信息,這個代碼如何回答這個問題? – slfan