2012-01-08 35 views
11

我在我的控制器中有两个操作方法。我希望两个都返回一个视图。MVC3两个控制器操作可以返回一个视图吗?

原因是因为我在我的视图中进行条件检查,检查一个属性是否为null,然后不显示div,如果用户单击加载按钮,则需要通过设置属性返回相同的视图显示模型,然后显示div。

该逻辑至少需要15次,我希望创建单独的操作来返回模型,但返回一个视图。可能吗?

+0

如果你想返回相同的观点与不同的viewmodels,我更喜欢传递一个参数,它允许我区分如何返回给定的视图,而不是创建单独的操作返回相同的视图... – 2012-01-08 21:40:17

回答

17

你只需要在你的return语句声明,视图名称:

public ActionResult SomeAction() 
{ 
    // do something 
    return View("SharedView", viewModel); 
} 

如果你有一个名为SharedView观点,在控制器的所有动作都可以访问它。如果要在其他控制器上的操作中共享它,可以在视图中使用共享文件夹,或者使用视图名称的状态完整路径。

+1

这是一个msdn参考页面,[View Method] (HTTP://msdn.microsoft.c om/en-us/library/dd460310%28VS.98%29.aspx) – Roman 2012-01-09 00:28:52

1
return View("viewName", data); 


第一个参数告诉框架,从中查看渲染和第2个参数用于为这一观点提供了数据
其次,你可以使用

return RedirectToAction("actionName",new{data=something}); 
+0

Rick仔细阅读这个问题。其控制器行动。即在一个控制器中采用两种操作方法 – RollerCosta 2012-01-10 05:10:59

相关问题