不明确的行动方法 - ASP.net MVC

时间:2009-07-16 10:53:58

标签: asp.net-mvc vb.net

我在做一些可能很简单的事情时遇到了麻烦!

我有一个股票清单,由1)一个带参数的简单表格(\索引)和2)一个叫做部分视图的ajax显示股票清单(基于参数)。

在同一个简单的表格(\索引)上,我有一个“添加股票”方法的操作链接,该方法调用另一个表格来添加股票。
当用户完成添加库存后,我将它们重定向回库存清单页面(\索引)。

我的问题是我想“记住”最初在此表单中输入的参数,因此用户不仅仅被定向回具有空白参数的页面,迫使他们再次输入这些参数。

我认为我可以简单地重载Index方法:

Function Index() As ActionResult

    Return View(New Stock_ViewModel)

End Function

Function Index(ByVal svm As Stock_ViewModel) As ActionResult

    Return View(svm)

End Function

我收到此错误:The current request for action 'Index' on controller type 'StockController' is ambiguous between the following action methods:...

现在我已经阅读了this post并且答案是答案,但我无法弄清楚如何实施解决方案。

此解决方案适用于我的情况吗?有没有更好的方法来实现我想要做的事情?

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

你需要像这样装饰你的方法:

Function Index() As ActionResult
    Return View(New Stock_ViewModel)
End Function

<RequireRouteValues("svm")> _ 
Function Index(ByVal svm As Stock_ViewModel) As ActionResult
    Return View(svm)
End Function

答案 1 :(得分:0)

看来他的问题比你的问题复杂得多。您应该能够使用Levi创建的RequiredRequestValue属性,而不是他创建的RequiredRouteValues类。

你必须自己转换为vb.net,但要坚持Levi的答案,而不是修改路线。

詹姆斯