在我的 Controller 中,我有一个 Edit GET 方法来显示 View ,还有一个 Edit POST 方法来保存更改:
public ViewResult Edit(int id)
{
//
}
[HttpPost]
public ActionResult Edit(int id)
{
//
}
但我收到一条错误消息:
类型“Controllers.MyController”已经定义了一个名为“Edit”的成员,其参数类型与 相同
我该如何解决这个问题?
最佳答案
您可以实现 View 模型,以便您拥有包含所有字段的 EditViewModel,您希望用户能够编辑并在您的 Edit GET 方法中返回它,并拥有 View 模型的强类型 View 。那么这意味着在您的 POST 方法中,您将 EditViewModel 作为参数传递,有点像这样:
[HttpGet]
public ViewResult Edit(int id)
{
//build and populate view model
var viewModel = new EditViewModel();
viewModel.Id = id;
viewModel.Name = //go off to populate fields
return View("", viewModel)
}
[HttpPost]
public ActionResult Edit(EditViewModel viewModel)
{
//use data from viewModel and save in database
}
所以你的 GET 和 POST 方法会有不同的签名。希望这可以帮助。
关于c# - 包含相同参数的 ViewResult 和 ActionResult 出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4698252/