C# 获取局部视图的模型并在操作链接中使用它
假设我有这样的观点:C# 获取局部视图的模型并在操作链接中使用它,c#,asp.net-mvc,oop,partial-views,actionlink,C#,Asp.net Mvc,Oop,Partial Views,Actionlink,假设我有这样的观点: @{ ViewBag.Title = "Send Items"; } <h2>Sent Items</h2> <p> @using (Html.BeginForm()) { Html.RenderAction("AdvancedSearchEngine", "PartialViews"); } @Html.ActionLink("Back to Selection", "Men
@{
ViewBag.Title = "Send Items";
}
<h2>Sent Items</h2>
<p>
@using (Html.BeginForm())
{
Html.RenderAction("AdvancedSearchEngine", "PartialViews");
}
@Html.ActionLink("Back to Selection", "MenuSelection")
</p>
@{
ViewBag.Title=“发送项目”;
}
发送的项目
@使用(Html.BeginForm())
{
RenderAction(“高级搜索引擎”、“部分视图”);
}
@ActionLink(“返回选择”、“菜单选择”)
我想添加一个htmlActionLink
,它将使我进入另一个视图。我希望在此actionlink中获取部分视图中使用的所有模型,以创建将在此视图中显示的项目列表
类似于@Html.ActionLink(“查看结果”、“显示项目”、新建{{u myObject=“blablabla”})
有办法吗
编辑
我添加了以下方法:
@Html.ActionLink(“查看结果”、“显示项”、“分派项”、新的{model=model},空)代码>
但一旦方法实际命中,对象仍然为空。在控制器中创建新操作:
public ActionResult DisplayItems(MyModel model)
{
// Do stuff
return View(model);
}
然后在SendItems视图中使用此AcitonLink:
Html.ActionLink("See the results", "DisplayItems", "ControllerName", new { model = Model }, null);
我不确定我是否完全理解这个问题,但让我们试一试。
使用AjaxHelper执行此操作,使其更有意义,并渲染局部视图。ActionLink必须有一些关于要显示的模型的信息,可以是id或其他任何信息。然后,您可以通过单击链接来呈现此内容,而无需刷新整个页面。不要忘记在主视图中包含JQuery引用
@{
ViewBag.Title=“发送项目”;
}
发送的项目
@使用(Html.BeginForm())
{
RenderAction(“高级搜索引擎”、“部分视图”);
}
@ActionLink(“返回选择”,“菜单选择”,新建{id=Model.id}”
新的AjaxOptions{HttpMethod=“GET”,
InsertionMode=InsertionMode.Replace,
UpdateTargetId=“结果”)
公共操作结果显示项(int id)
{
//做事
返回部分视图(“”);
}
希望这对您有所帮助!这是有道理的,但是当我在控制器中点击该操作时,该模型没有继续。您确定已传递该操作并且匿名类型中的属性名称与参数名称相同吗?您是否也可以添加您的操作DisplayItems
?另外,请尝试在调用的行上添加断点ActionLink
并检查视图中的模型是否包含您期望的内容。
@{
ViewBag.Title = "Send Items";
}
<h2>Sent Items</h2>
<p>
@using (Html.BeginForm())
{
Html.RenderAction("AdvancedSearchEngine", "PartialViews");
}
@Ajax.ActionLink("Back to Selection", "MenuSelection", new {id = Model.Id}
new AjaxOptions { HttpMethod ="GET",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "results")
<div id="results"></div>
public ActionResult DisplayItems(int id)
{
// Do stuff
return PartialView("");
}