asp.net mvc参数从页面到局部视图

时间:2009-06-01 17:52:20

标签: asp.net-mvc parameters

我遇到了问题,我有一个传递参数的ajax链接,但是,它打开的页面不需要该参数。页面只加载2个局部视图,其中一个需要传递给页面的参数才能正确加载数据,另一个只需要加载一个表单,因此,不需要该参数。我怎么能做到这一点?

4 个答案:

答案 0 :(得分:6)

为了做你想做的事,你需要将id添加到ViewData构造中。

var sysfunctions= UnisegurancaService.FunctionsRepository.All();
ViewData["NeededID"] = id
return View(sysfunctions);

然后在你的视图中渲染部分

<%= Html.RenderPartial("GridFunction", (int)ViewData["NeededID"]) %>

当然需要施放。

随着第二个参数成为部分中的.Model而被推入的任何东西。我建议也强烈输入你的部分内容。

答案 1 :(得分:3)

试试这个:

<% Html.RenderPartial("GridFunction", new ViewDataDictionary {{"Id", ViewData["Id"]}}); %>

<强>更新:

并在控制器操作中添加:

ViewData["Id"] = Id;

<强>更新:

在您的GridFunction部分视图中,您可以访问ID为:

<%= ViewData["Id"] %>

答案 2 :(得分:0)

//控制器

  public ActionResult EditFunctions(int id)
    {

        var sysfunctions= UnisegurancaService.FunctionsRepository.All();
        return View(sysfunctions);
    }
    // This is the controller (it does no need the parameter "ID")

//这是“EditFunctions”视图

<div id="formFunction">
<% Html.RenderPartial("FormFunction"); %>
</div>


<div id="gridFunction">
<% Html.RenderPartial("GridFunction"); %> // The grid needs the ID to work correctly but its in the parent page not in the partial call....and the call is an ajax call
</div>

答案 3 :(得分:0)

如果页面的某些依赖关系需要参数,那么页面需要足够的知识来传递数据,因此页面应该能够提供数据。或者,更简单地说,只需将参数添加到Page的viewdata中即可完成。