C# 将值传递给局部视图

C# 将值传递给局部视图,c#,asp.net-mvc,asp.net-mvc-4,C#,Asp.net Mvc,Asp.net Mvc 4,我想把一个参数传递给一个局部视图。视图将创建一个新的post对象,我想给它传递一个要使用的参数。这可能吗?我看到视图数据字典在试图找出它的时候被传来传去,但我不知道如何使用它 局部视图调用 @Html.Partial("_AddPost", new S.Models.Post()) _地址栏 @model S.Models.Post <h2>Create</h2> ` @using (Ajax.BeginForm("CreatePost", "Wall",

我想把一个参数传递给一个局部视图。视图将创建一个新的post对象,我想给它传递一个要使用的参数。这可能吗?我看到视图数据字典在试图找出它的时候被传来传去,但我不知道如何使用它

局部视图调用

@Html.Partial("_AddPost", new S.Models.Post())
_地址栏

@model S.Models.Post

<h2>Create</h2>

    `
@using (Ajax.BeginForm("CreatePost", "Wall", new AjaxOptions
{
    HttpMethod = "post",
    InsertionMode = System.Web.Mvc.Ajax.InsertionMode.InsertAfter,
    UpdateTargetId = "newStatus"}))
{
    @Html.AntiForgeryToken()
    @Html.ValidationSummary(true) 

    <fieldset>
        <legend>Post</legend>

        <div class="editor-label">

        </div>
        <div class="editor-field">

 @Html.HiddenFor(model => model.wallName, new { Value = //data i want passed from main view })
 @Html.HiddenFor(model => model.Username, new { Value = User.Identity.Name })

        </div>


        <div class="editor-label">
            @Html.LabelFor(model => model.PostContent)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.PostContent)
            @Html.ValidationMessageFor(model => model.PostContent)
        </div>

        @{
    TempData["returnURL"] = Request.Url.AbsoluteUri;
        }
        <p>
            <input type="submit" id="postStatus" value="Create" />
        </p>
    </fieldset>
}
@model S.Models.Post
创造
`
@使用(Ajax.BeginForm(“CreatePost”,“Wall”),新的AjaxOptions
{
HttpMethod=“post”,
InsertionMode=System.Web.Mvc.Ajax.InsertionMode.InsertAfter,
UpdateTargetId=“newStatus”})
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
邮递
@Html.HiddenFor(model=>model.wallName,新的{Value=//我希望从主视图传递的数据})
@Html.HiddenFor(model=>model.Username,新{Value=User.Identity.Name})
@LabelFor(model=>model.PostContent)
@EditorFor(model=>model.PostContent)
@Html.ValidationMessageFor(model=>model.PostContent)
@{
TempData[“returnURL”]=Request.Url.AbsoluteUri;
}

}
由于该值来自主视图模型,并且您正在从主视图调用partial,因此在调用新的S.Models.Post时,只需在构造函数中设置模型对象的值即可

@Html.Partial("_AddPost", new S.Models.Post({wallPost = model.Value}))
如果主视图中的ViewData或ViewBag中有项目,也可以通过添加第三个参数将这些项目传递到分部

@Html.Partial("_AddPost", new S.Models.Post(), ViewData)

您可以通过将其添加到viewdata并在调用部分视图时在参数中传递它来完成此操作,您可以添加部分类名“Post”添加要传递的变量,然后在调用部分视图时设置其数据“new S.Models.Post(){set properties}”