我試圖做一點渲染框架,因爲我需要更多的控制渲染過程。 FX。如果一個屬性需要在選項卡中呈現。自定義渲染與不顯眼的驗證,不工作,爲什麼?
所以我下決心,呈現一個文本框,但它不與服務器端或客戶端驗證(MVC的不顯眼的驗證)驗證
我把我的框架出來,並重新創建一個小eksampel
public class Foo
{
public virtual int Id { get; set; }
[System.ComponentModel.DataAnnotations.Required]
public virtual string Name { get; set; }
public virtual DateTime StartTime { get; set; }
}
我的擴展方法:
public static MvcHtmlString DummyForm(this HtmlHelper html)
{
StringBuilder sb = new StringBuilder();
Type oftype = typeof(Foo);
string[] propertyNameToRender = oftype.GetProperties().Select(o => o.Name).ToArray();
foreach (string s in propertyNameToRender)
{
MvcHtmlString htmlstring = System.Web.Mvc.Html.InputExtensions.TextBox(html, s);
sb.AppendLine(htmlstring.ToHtmlString());
}
return MvcHtmlString.Create(sb.ToString());
}
而且在Edit.cshtml
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
@using (Html.BeginForm()) {
@Html.ValidationSummary(true);
@Html.DummyForm()
}
如果我看看呈現的html輸出,它的相同(沒有驗證attri) 任何人都可以告訴我,爲什麼驗證attri,不呈現。
即時通訊使用mvc自己的渲染控件,HtmlHelper從視圖中傳遞,包含所有ModelMetadata和ModelState。
嗨 我也試過了。同樣的結果。 我已經編輯了我的頂級帖子,所以你可以選擇我的表單上下文。 –