我有2个动作
public ActionResult FilesAdd(int id)
{
FillParentMenuDDL(id);
return View();
}
[HttpPost]
public ActionResult FilesAdd(int id)
{
//some logic...
FillParentMenuDDL(id);
return View();
}
但由于相同的参数,它是错误的,但我只需要一个参数。首先我调用页面/动作/ id然后我提交它例如id和上传文件,但我使用request.files [0]访问文件。那么控制器和相同参数的解决方案是什么?我看到只在一个控制器中声明FilesAdd(int?id)
答案 0 :(得分:3)
.Net MVC为此目的有一个ActionNameAttribute。将第二个操作重命名为FilesAddPost,然后使用ActionNameAttribute("FilesAdd")
public ActionResult FilesAdd(int id)
{
FillParentMenuDDL(id);
return View();
}
[HttpPost]
[ActionName("FilesAdd")]
public ActionResult FilesAddPost(int id)
{
//some logic...
FillParentMenuDDL(id);
return View();
}
答案 1 :(得分:1)
将一个(未使用的)表单参数添加到POST操作中。这将使方法签名不同。
[HttpPost]
public ActionResult FilesAdd(int id, FormCollection form)
{
//some logic...
FillParentMenuDDL(id);
return View();
}
答案 2 :(得分:0)
您可以控制提交表单的操作,但不必执行相同的操作。
// Works under MVC 2.0
<% using (Html.BeginForm("action", "controller", FormMethod.Post)) { %>
// code
<% } %>