C# 将id从父视图传递到部分视图,但失败

C# 将id从父视图传递到部分视图,但失败,c#,asp.net-mvc,core,asp.net-mvc-partialview,C#,Asp.net Mvc,Core,Asp.net Mvc Partialview,我想将user.Id传递给部分视图,以便在部分视图中填充“@Html.EditorFor(model=>model.UserID,new{@Value=Id})”。在这个局部视图模型中,我得到了null。 父视图的代码为 @model KhanewalNews.Models.user @{ int id = Model.id; } @Html.Partial("AssignRoles",null, new ViewDataDictionary { { "id",

我想将user.Id传递给部分视图,以便在部分视图中填充“@Html.EditorFor(model=>model.UserID,new{@Value=Id})”。在这个局部视图模型中,我得到了null。 父视图的代码为

@model KhanewalNews.Models.user
    @{ 
        int id = Model.id;
    }
@Html.Partial("AssignRoles",null, new ViewDataDictionary { { "id", id } });

@{
    ViewBag.Title = "MemberDetails";
    Layout = "~/Views/Shared/_DashboardLayout.cshtml";
}
//parent view implementation here
部分视图的代码为

@model KhanewalNews.Models.Role
    <script src="~/Scripts/jquery-1.8.2.min.js"></script>
    <script src="~/Scripts/jquery.validate.min.js"></script>
    <script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
@{ 
    int id = (int)this.ViewData["id"];
}
    @using (Html.BeginForm())
    {
        @Html.AntiForgeryToken()
        @Html.ValidationSummary(true)

        <fieldset>
            <div class="editor-label">
                @Html.LabelFor(model => model.UserID)
            </div>
            <div class="editor-field">
                @Html.EditorFor(model => model.UserID, new { @Value = id })
                @Html.ValidationMessageFor(model => model.UserID)
            </div>
            <div class="editor-label">
                @Html.LabelFor(model => model.role1)
            </div>
            <div class="editor-field">
                @Html.DropDownListFor(m => m.role1, new SelectList(
                  new List<Object>{
                       new { value = "add" , text = "add"  },
                       new { value = "update" , text = "update" },
                       new { value = "delete" , text = "update"},
                        new { value = "super" , text = "super"}
                    },
                  "value",
                  "text"
           ))
                @Html.ValidationMessageFor(model => model.role1)
            </div>
            <p>
                <input type="submit" value="Create" />
            </p>
        </fieldset>
    }
    <div>
        @Html.ActionLink("Back to List", "Index")
    </div>

如果只将UserID传递给partial,那么partial页面中的其他属性呢?他们是否抛出空引用异常?尝试删除部分页面中的其他模型属性,以确定什么是null。是的,我这样做了:@Html.partial(“AssignRoles”,null,newviewdatadictionary{{“id”,id});但是接收空。你调试过了吗?你确定id是空的还是角色部分视图上的模型?@JerdineSabio谢谢,调试时我发现id不是空的。问题出在我的控制器上,我正在发送不完整的用户模型。这段代码现在运行良好。如果您只将UserID传递给partial,那么partial页面中的其他属性呢?他们是否抛出空引用异常?尝试删除部分页面中的其他模型属性,以确定什么是null。是的,我这样做了:@Html.partial(“AssignRoles”,null,newviewdatadictionary{{“id”,id});但是接收空。你调试过了吗?你确定id是空的还是角色部分视图上的模型?@JerdineSabio谢谢,调试时我发现id不是空的。问题出在我的控制器上,我正在发送不完整的用户模型。这段代码现在运行正常。虽然这段代码可能会解决问题,但一个好的答案也应该解释代码的作用以及它的帮助。@BDL问题出在我的控制器中,我发送的是不完整的用户模型,请参阅前面的控制器操作“MemberDetails”我以一种非常缺乏经验的方式发送了一个用户实例。虽然这段代码可能会解决问题,但一个好的答案也应该解释代码的作用以及它的帮助。@BDL问题出在我的控制器中,我发送的是不完整的用户模型,请参阅前面的控制器操作“MemberDetails”我以一种非常缺乏经验的方式发送了一个用户实例。
public ActionResult AssignRoles()
        {
            return View();
        }
        [HttpPost]
public ActionResult AssignRoles(Role r)
        {
            //implementation here
            return View();
        }
    public ActionResult MemberDetails(int id)
    {
        var userdetail = new user();
        var user = db.users.Where(x => x.id == id).FirstOrDefault();
        userdetail.username = user.username;
        return View(userdetail);
    }
public ActionResult MemberDetails(int id)
{
    var user = db.users.Where(x => x.id == id).FirstOrDefault();
    return View(user);
}