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