Ste*_*ven 4 c# asp.net asp.net-mvc overloading
在我的控制器中,我有一个Edit GET方法来显示视图,还有一个Edit POST方法来保存更改:
public ViewResult Edit(int id)
{
//
}
[HttpPost]
public ActionResult Edit(int id)
{
//
}
Run Code Online (Sandbox Code Playgroud)
但我收到一个错误说:
类型'Controllers.MyController'已经定义了一个名为'Edit'的成员,它具有相同的参数类型
我该如何解决这个问题?
您可以实现视图模型,以便包含希望用户能够编辑的所有字段的EditViewModel,并在Edit GET方法中返回该字段,并为视图模型提供强类型视图.那意味着在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
}
Run Code Online (Sandbox Code Playgroud)
因此,您的GET和POST方法将具有不同的签名.希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
2733 次 |
| 最近记录: |