【问题标题】:Ambiguous Action Methods - ASP.net MVC模棱两可的动作方法 - ASP.net MVC
【发布时间】:2010-11-11 07:56:20
【问题描述】:

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

我有一个股票列表,它通过以下方式完成:1) 一个带有参数 (\Index) 的简单表单和 2) 一个称为局部视图的 ajax,它显示股票列表(基于参数)。

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

我的问题是我想“记住”最初在此表单中输入的参数,这样用户就不会只是被引导回到带有空白参数的页面,迫使他们再次输入它们。

我想我可以像这样简单地重载 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 并且是答案,但我不知道如何实施该解决方案。

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

提前感谢您的帮助!

【问题讨论】:

    标签: asp.net-mvc vb.net


    【解决方案1】:

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

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

    詹姆斯

    【讨论】:

    • 您需要自己创建属性,就像您使用 RequireRouteValues 一样。源代码包含在 Levi 的答案中(在 c# 中)。
    • 感谢您抽出时间 James,我已经按照 Levi 的帖子实现了更简单的 RequiredRequestValue。
    【解决方案2】:

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

    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
    

    【讨论】:

    • 是的,这就是它在另一篇文章中所说的......如果我这样做,它不知道 是什么 - “类型 RequireRouteValues 未定义”......什么我失踪了!?
    • 这是一个自定义属性(代码在您链接的问题中)
    猜你喜欢
    • 2011-08-09
    • 1970-01-01
    • 2016-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多