Asp.net-Mvc-3
驗證摘要消息中的連結
是否可以在驗證摘要消息中放置 HTML 連結?例如,如果出現驗證錯誤,我想放置一個指向另一個頁面的連結:
@Html.ValidationSummary(False, "read <a href=""anotherpage.html"">more</a>")或者
@Html.ValidationSummary(False, "read " & Html.ActionLink("more", "helpforerror").ToHtmlString)但在瀏覽器中,標籤被轉義,因此它不會形成連結。
最後我選擇了另一種方法:在驗證摘要之外創建一個包含連結等的 div,並且僅在 modelstate 無效時添加 div:
@If Not ViewData.ModelState.IsValid Then @<div>read <a href="anotherpage.html">more</a></div> End If這是受類似問題的回答啟發的。
我知道您已經接受了答案,但我認為我的解決方案更簡單,如果您想添加指向現有驗證摘要的連結,則需要更少的重寫。
您需要在驗證消息中添加一個
{0}類型格式項,如下所示,它將被您的連結替換。ModelState.AddModelError("", "Some error message with a link here {0}.");然後在您的視圖中呼叫您的驗證摘要,如下所示:
@string.Format(Html.ValidationSummary().ToString(), Html.ActionLink("Click Here", "Action_To_Link_To")).ToHtmlString()在這種情況下,我使用了添加到字元串對象的擴展方法,該方法
.ToHtmlString()基本上只是將字元串轉換為 HtmlString,以防止任何標記被轉義。它看起來像這樣:public static HtmlString ToHtmlString(this String str) { return new HtmlString(str); }