C# 将值传递给局部视图
我想把一个参数传递给一个局部视图。视图将创建一个新的post对象,我想给它传递一个要使用的参数。这可能吗?我看到视图数据字典在试图找出它的时候被传来传去,但我不知道如何使用它 局部视图调用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",
@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}”