gpt4 book ai didi

asp.net-mvc - 如何使用asp.net mvc EditorTemplate

转载 作者:行者123 更新时间:2023-12-04 12:24:51 26 4
gpt4 key购买 nike

我读到 EditorTemplates 是自动加载的,但是从 asp.net mvc 2 和现在的 3 with razor,我仍然无法让它工作。

我的模型看起来像这样:

public class RoleViewModel
{
public int RoleId { get; set; }
public bool InRole { get; set; }
public string RoleName { get; set; }
}

public class UserViewModel
{
public User User { get; set; }
public IEnumerable<RoleViewModel> Roles { get; set; }
}

我的观点是这样的:

~/Views/Roles/Edit.cshtml
@model Project.Web.ViewModel.UserViewModel
@using (Html.BeginForm()) {
@Html.EditorFor(model => model.Roles)
<!-- Other stuff here -->
}

~/Views/Roles/EditorTemplates/RoleViewModel.cshtml
@model Project.Web.ViewModel.RoleViewModel
@foreach (var i in Model)
{
<div>
@i.RoleName
@Html.HiddenFor(model => i.RoleId)
@Html.CheckBoxFor(model => i.InRole)
</div>
}

如果我从 EditorTemplate 移动内容到实际页面,然后它就可以工作了,它会显示复选框等。但是在当前的设置中,显示的只是角色数量的计数。

我究竟做错了什么?

最佳答案

~/Views/Roles/EditorTemplates/RoleViewModel.cshtml

@model MvcApplication16.Controllers.RoleViewModel
<div>
@Model.RoleName
@Html.HiddenFor(m => m.RoleId)
@Html.CheckBoxFor(m => m.InRole)
</div>

〜/ View /角色/Edit.cshtml
@model MvcApplication16.Controllers.UserViewModel
@using (Html.BeginForm()) {
@Html.EditorFor(m => m.Roles)
<!-- Other stuff here -->
}

楷模
public class UserViewModel {
public User User { get; set; }
public IEnumerable<RoleViewModel> Roles { get; set; }
}

public class RoleViewModel {
public int RoleId { get; set; }
public bool InRole { get; set; }
public string RoleName { get; set; }
}

public class User {
public string Name { get; set; }
}

Controller
public ActionResult Edit() {
return View(
new UserViewModel() {
User = new User() { Name = "Test" },
Roles = new List<RoleViewModel>() {
new RoleViewModel() {
RoleId = 1,
InRole = true,
RoleName = "Test Role" }}
});
}

上面的代码工作得很好。将它与您的进行比较,看看您是否发现任何问题:)

关于asp.net-mvc - 如何使用asp.net mvc EditorTemplate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4671562/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com