我有一个可以通过三种方式访问的视图:
1。空表单 - 从菜单初始获取
[HttpGet]
public ActionResult GetMe()
2。表单提交后填充的表单(选择下拉值后)
[HttpPost]
public ActionResult GetMe(int firstDropdownValue)
第3。通过javascript从另一个页面请求后填充。这是一个GET。
[HttpGet]
public ActionResult GetMe(int secondDropdownValue, int thirdDropdownValue)
问题是#3与#1冲突,因为不允许两个获取相同的ActionName。我可以给#3一个不同的动作名称,但我真的希望两者在URL中显示相同的名称。
我查看了[ActionName]属性,但我认为它不能帮助我。有解决方法吗?
答案 0 :(得分:0)
[HttpGet]
public ActionResult GetMe()
[HttpPost]
[ActionName("GetMe")]
public ActionResult GetMeHttpPost(int dropDownValue)
这当然意味着您需要更改第3个选项(JS)来执行POST而不是GET。如果这是一个问题,您需要第三个操作与单独的URL。
虽然我没有设想需要JavaScript来“获取”整个页面的场景 - 它不应该是返回PartialViewResult的子操作吗?
答案 1 :(得分:0)
修复编译错误后,可以将#1和#3与可以为空的int结合使用。
[HttpGet]
public ActionResult GetMe(int? dropDownValue)