为嵌套视图模型赋值



我对MVC有点陌生,在为嵌套视图模型分配值/数据时遇到一些困难。当我运行应用程序时,嵌套视图不显示任何内容,但是当我调试控制器时,设置了值。嵌套视图模型是否必须在主视图模型的构造函数中实例化?如何?

我确实让它与模型而不是视图模型一起使用,但我需要添加一些验证。

例:

public class MainViewModel
{ 
public NestedViewModel NestedViewModel { get; set; }
} 
public class NestedViewModel
{
public string Name {get; set;}
}

在控制器中:

public ActionResult Main()
{
var mvm = new MainViewModel();
mvm.NestedViewModel = new NestedViewModel();
mvm.NestedViewModel.Name = data.Name.ToString();
return View(mvm);
}

在观点中:

@model WEB.Models.MainViewModel
@{Html.RenderPartial("_NestedView", Model.NestedViewModel);}

和嵌套视图:

@model WEB.Models.MainViewModel
@Html.TextBoxFor(model => model.NestedViewModel.Name)

文本框没有任何内容,而控制器有。

@model WEB.Models.MainViewModel
@Html.TextBoxFor(model => model.NestedViewModel.Name)
//should be
@model WEB.Models.NestedViewModel
@Html.TextBoxFor(model => model.Name)

最新更新