Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 获取局部视图的模型并在操作链接中使用它_C#_Asp.net Mvc_Oop_Partial Views_Actionlink - Fatal编程技术网

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(“返回选择”、“菜单选择”)

我想添加一个html
ActionLink
,它将使我进入另一个视图。我希望在此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("");
 }