我在任何应用程序中都有一个非常典型的情况,我有以下功能:
IMO,创建和编辑应该由相同的视图提供,但不同的操作。但似乎我必须让动作名称与视图名称匹配....你会为此使用部分视图吗?我宁愿不要使这种情况复杂化 - 这非常简单,几乎出现在每个网络应用程序中。
答案 0 :(得分:2)
Action可以通过这种方式返回具有不同名称的视图:
public ActionResult OneName()
{
return View("OtherName");
}
如果您未指定视图名称(视图(“”)),则视图将是具有操作名称的视图
答案 1 :(得分:0)
部分观点是一个很好的答案。我建议你看看MvcScaffold NuGet包是如何做到的。 See here或在Visual Studio中获取包。
答案 2 :(得分:-1)
我只是完全使用相同的操作并使用ID来确定这是新记录还是更新现有记录:
/Forum/Post/Edit/0
创建新记录
/Forum/Post/Edit/10457
更新ID为10457的记录
但是,由于您坚持使用不同的操作,为什么不简单地创建2个操作,两者都返回相同的视图?
public class PostController : Controller
{
public ActionResult Create(Post post)
{
// work your magic...
return View("Edit", post);
}
public ActionResult Update(Post post)
{
// work your magic...
return View("Edit", post);
}
}
如果这在您的方案中不起作用,那么您几乎可以使用部分视图。