[英]MVC Rendering a partial view in an EditorFor
除了這里提出的解決方案,我試過但沒有用 - 我想知道razor如何計算出一個強類型的局部視圖? 我按照建議進行了操作,但感覺它沒有正確綁定而且缺少某些東西。
我的“子”模型:
public class Cohort
{
public bool ukft { get; set; }
public bool ukpt { get; set; }
...etc
}
我的強類型局部視圖:
@model Models.Cohort
@Html.RadioButtonFor(model => Model.ukft, true) <span style="margin-right:8px;">Yes</span>
@Html.RadioButtonFor(model => Model.ukft, false) <span>No</span> <br />
我的主模型(包含群組對象列表):
public class OptOut
{
public int optOutID { get; set; }
public bool hasOptedOut { get; set; }
public List<Cohort> list { get; set; }
public OptOut()
{
List<Cohort> list = new List<Cohort>();
list.Add(new Cohort());
list.Add(new Cohort());
list.Add(new Cohort());
list.Add(new Cohort());
this.list = list;
}
}
然后我的HTML:
@model Models.OptOut
@using (Html.BeginForm("OptedOut", "Home"))
{
//this should supposedly figure out to render a partial view for each element in the list
@Html.EditorFor(model => model.list)
<div class="form-group" style="margin-top:25px;">
<input id="confirm" type="submit" value="Confirm" class="btn btn-success btn-lg"/>
</div>
}
看起來你只是錯過了EditorFor
和你的局部視圖之間的EditorFor
。 雖然EditorFor
確實使用了部分視圖,但更恰當的是,它使用了所謂的“編輯器模板”。 這些只是部分視圖,其位置和文件名遵循特定約定。
也就是說,您的局部視圖應該位於Views\\Shared\\EditorTemplates
。 (創建目錄。默認情況下它不存在。)然后,它應該以它應該使用的類型命名。 在這里,這是Cohort
,所以最終的路徑和名稱應該是:
Views\Shared\EditorTemplates\Cohort.cshtml
然后, EditorFor
將看到您有一個Cohort
列表,並使用Cohort.cshtml
編輯器模板呈現列表中的每個項目。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.