MVC任何操作都会返回同名的部分视图

时间:2012-11-26 11:10:34

标签: asp.net-mvc asp.net-mvc-4

我有一个控制器,其中所有操作方法都包含相同的代码:

[ActionName("pretty-url")]
public ActionResult Something() {
  return PartialView();
}    

[ActionName("another-pretty-url")]
public ActionResult SomethingElse() {
  return PartialView();
}

我以pretty-url.cshtml格式命名我的部分视图,这些视图很好,一切正常。

由于控制器中的每个动作总是做同样的事情并返回相同的东西,我想让我的控制器寻找正确命名的视图并按上面的方式返回它,而不必我明确地实现它

我该怎么做?

TIA

2 个答案:

答案 0 :(得分:0)

我会创建一个动作并将视图名称作为参数传递。

public ActionResult Something(string viewName) 
{
  return PartialView(viewName);
}

答案 1 :(得分:0)

我会使用字符串参数向控制器添加一个新方法,并使用它来加载正确的局部视图。

public ActionResult Show(string PartialName)
{
    return PartialView(PartialName);
}

现在,您不必使用http://your.domain/pretty_url,而是使用http://your.domain/show/pretty_url,但这将适用于您稍后添加的任何新的局部视图。