我有这个viewmodel,它有一些我想要应用的属性和东西 到布局页面:
public class BasicViewModel
{
public Page Page { get; set; }
public List<Settings> Settings { get; set; }
}
从其他线程我知道这是可能的,但我真的不明白如何。
根据我的理解,我不知何故需要修改控制器,这是我感到困惑的地方。我如何知道必须修改哪个控制器以及如何修改? 任何帮助表示赞赏。
答案 0 :(得分:1)
在控制器中,准备像
这样的动作public ActionResult BasicViewModelDemo
{
BasicViewModel obj=new BasicViewModel()
// assign properties
return View(obj);
}
并查看写一些jquery。 (这里我使用敲击来制作视图模型)
<script>
var model='@Html.Raw(Json.Encode(Model))';
var viewmodel = ko.mapping.fromJSON(model);
</script>
答案 1 :(得分:0)
这是我的解决方案 -
假设你有这种模式 -
public class BasicViewModel
{
public Page Page { get; set; }
public List<Settings> Settings { get; set; }
}
public class Page
{
public string PageName { get; set; }
}
public class Settings
{
public string SettingName { get; set; }
}
然后在控制器中你应该以这种方式启动模型 -
public class HomeController : Controller
{
BasicViewModel model;
public HomeController()
{
model = new BasicViewModel();
model.Page = new Page();
model.Settings = new List<Settings>();
}
public ActionResult Index()
{
model.Page.PageName = "My Page";
ViewBag.LayoutModel = model;
return View();
}
}
基本上我们使用Constructor启动模型,然后在控制器操作中分配适当的值。
然后在Layout中,我们可以使用Model属性,如下所示 -
<div> @ViewBag.LayoutModel.Page.PageName </div>