.Net MVC控制器不同的路由名称使用相同的cshtml作为视图
在.NET MVC中,我发现它始终遵循以下命名约定:控制器中的RouteName,它是一个名为'RouteName.cshtml'的视图。.Net MVC控制器不同的路由名称使用相同的cshtml作为视图
我的问题是如何使用不同的RouteName使用SAME cshtml文件?
默认视图()方法的默认匹配操作名称,但您可以使用View(String)方法来指定路径所需CSHTML,像下面的例子:
// in action method that is *not* RouteName
return View("RouteName");
谢谢。目前,我'返回视图(myViewModel)',你能告诉我在哪里可以找到API,以便我可以指定路由名称和模型到我的视图? – n179911
请访问https://msdn.microsoft.com/zh-CN/library/system.web.mvc.controller.view(v=vs.118).aspx#M:System.Web.Mvc.Controller 。查看 您正在寻找的内容听起来像是重载(string,object)的参数列表,其中字符串参数是视图名称,而对象参数是您的模型。 –
你可以使用partials重新使用CSHTML块;取决于你试图解决的问题,这可能是更好的解决方案。
你能编辑你的问题并添加更多的上下文吗?为什么需要从多个ActionResult方法呈现相同的cshtml?你想达到什么目的?
例如,有一个名为About.cshtml 鉴于你有2点作用的方法和他们两个都使用About.cshtml
所以,你可以尝试
public ActionResult Index()
{
var model = "view model";
// Pass view model as the second parameter
return View("About", model);
}
public ActionResult About()
{
ViewBag.Message = "Your application description page.";
// Not need pass view name because view name and action method name are same (About
return View();
}
的可能的复制[如何返回ActionResult与特定的视图(不是控制器名称)](https://*.com/questions/26359192/how-to-return-actionresult-with-specific-view-not-the-controller-name) – mjwills