有没有一种方法可以拥有模板局部视图,该视图将重复执行一项工作,但是局部视图中只有一件事会发生变化,因此可以在具有不同模型的多个视图中使用它,而不在乎Controller?
部分视图将从视图模型中接收布尔值,这取决于父视图。模型中的布尔值将始终用于相同位置。
@Html.LabelFor(Model => Model.Bool1, new { @class = "class" })
@Html.RadioButtonFor(Model => Model.Bool1, true, new { @class = "class"})`
在调用它时,我会将布尔名称传递给局部视图。
@Html.Partial("_RadioButton", Model.Bool1})
现在,我该怎么做才能使Bool保持可变。例如,以不同的模型在不同的视图中调用相同的部分。
@Html.Partial("_RadioButton", Model.Bool2})
谢谢。
答案 0 :(得分:0)
您应该使用编辑器模板,并根据单选按钮将模型传递给它。
在要包含模板的位置添加以下行,并传入模型和任何其他变量(对于基于模板位置的微小更改很有用)。
@Html.DisplayFor(m => Model, "_RadioButtonTmp", new { IsThisCorrect = "Yes", Title="RadioBtn" })
然后您的模板(_RadioButtonTmp)类似于:
@model RadioButton
@if (ViewBag.IsThisCorrect == "Yes")
{
<p>However you want the radio button to look based on your model</p>
}
更新备用模板
@model bool
<div>
@Html.RadioButtonFor(m => m, true, new { @class = "class"})
</div>