Razor Partial with Model from ViewModel
本文关键字:from ViewModel Model with Partial Razor | 更新日期: 2023-09-27 18:09:11
我有一个设置操作在我的帐户控制器渲染设置视图。
在Settings View中,我接收到一个ViewModel,其中包括ChangePasswordModel。
这里是SettingsViewModel:
public class SettingsViewModel
{
public ChangePasswordModel ChangePasswordModel { get; set; }
}
设置视图接收
@model XBLTools.Models.SettingsViewModel
ChangePassword View接收
@model XBLTools.Models.ChangePasswordModel
单独使用ChangePassword视图可以正常工作。如何渲染传递Model.ChangePasswordModel的changepasswordview ?
我尝试了一些组合,但没有成功得到不同的错误:
@Html.RenderPartial("ChangePassword", (XBLTools.Models.ChangePasswordModel)(Model.ChangePasswordModel))
@Html.RenderPartial("ChangePassword", Model.ChangePasswordModel)
@Html.Partial("ChangePassword", (XBLTools.Models.ChangePasswordModel)(Model.ChangePasswordModel))
@Html.Partial("ChangePassword", Model.ChangePasswordModel)
任何想法?
如果为null,则传入一个新的ChangePasswordModel实例:
@Html.RenderPartial("ChangePassword", new ChangePasswordModel())
或者在SettingsViewModel的构造函数中实例化它:
public class SettingsViewModel
{
public SetttingsViewModel()
{
ChangePasswordModel = new ChangePasswordModel();
}
public ChangePasswordModel ChangePasswordModel { get; set; }
}
应该在控制器的settings视图模型上初始化ChangePasswordModel
public ActionResult MyAction()
{
var model = new SettingsViewModel{
ChangePasswordModel = new ChangePasswordModel()
}
return View(model);
}
然后使用:
@Html.Partial("ChangePassword", Model.ChangePasswordModel)
你可以传递你的model属性:
@Html.Partial("ChangePassword", Model.ChangePasswordModel)
如果ChangePasswordModel
属性是null
,你会得到一个错误,因为部分视图需要一个模型。
确保您已经将ChangePasswordModel
属性设置为实例。
或者,您可以传递一个新的ChangePasswordModel
实例:
@Html.Partial("ChangePassword", new ChangePasswordModel())