对于Kaminy / KaminniTopky& amp;我需要两个不同的视图Kaminy / KaminniTopky / 5。 我怎么能这样做呢?
public class KaminyController : Controller
{
//
// GET: /Kaminy/
public ActionResult Index()
{
return View();
}
// GET: /Kaminy/KaminniTopky
public ActionResult KaminniTopky()
{
return View();
}
// GET: /Kaminy/KaminniTopky/5
public ActionResult KaminniTopky(int id)
{
return View();
}
}
答案 0 :(得分:1)
@Stephen Muecke的想法很有价值,你可以结合起来:
public ActionResult KaminniTopky(int? id)
{
if (!id.HasValue)
{
return View();
}
else
{
return View("OtherViewName");
}
}
还有一些重载也会占用模型 - return View(someModel);
和return View("OtherViewName", someModel);
。
在 MVC 5 中你可以:
[Route("Kaminy/KaminniTopky")]
public ActionResult KaminniTopky()
{
return View();
}
[Route("Kaminy/KaminniTopky/{id}")]
public ActionResult KaminniTopky(int id)
{
return View("OtherViewName");
}
对于像/Kaminy/KaminniTopky/KaminniTopkyWithOther/5
这样的东西,你会使用路由而不是奇怪的控制器结构来支持其他样式的URL。
E.g。在RouteConfig
:
routes.MapRoute(
"SomeRoute",
"/Kaminy/KaminniTopky/KaminniTopkyWithOther/{id}",
new { controller = "Kaminy", action = "KaminniTopkyWithOther", id = "" }
);
确保它出现在默认路线之前。
然后,只要与路径中定义的操作相同,您的操作被调用无关紧要。
public ActionResult KaminniTopkyWithOther(int id)
{
return View("OtherViewName");
}