Dot-Net
從控制器返回 EditorTemplate 作為局部視圖
我想從我的控制器返回一個 EditorTemplate 作為部分視圖。
我目前正在做:
public ActionResult Create([Bind(Prefix="Create")]CreateViewModel model) { return PartialView("~/Views/Shared/EditorTemplates/Template.cshtml", model); }問題是,在我這樣做之後,
Create_前綴就離開了我的視野。有沒有辦法將編輯器模板作為部分視圖返回並保留前綴?Index.cshtml @model IndexViewModel
@using(Html.BeginForm("Create")) { @Html.EditorFor(m => m.Create, "Template") <input type="submit" value="Save" /> }我正在通過 AJAX 呼叫送出此表單。當我最初呼叫 EditorFor 時,所有欄位的前綴都是
Create_. 但是,在我送出表單並返回此 PartialView 後,前綴失去了。
由於模板沒有在主視圖的上下文中呼叫,因此它失去了上下文。在這種情況下,您可以按如下方式定義前綴:
public ActionResult Create([Bind(Prefix="Create")]CreateViewModel model) { ViewData.TemplateInfo.HtmlFieldPrefix = "Create"; return PartialView("~/Views/Shared/EditorTemplates/Template.cshtml", model); }