【问题标题】:MVC5: Passing method values from View to ConrollerMVC 5:将方法值从视图传递到控制器
【发布时间】:2016-06-08 14:57:39
【问题描述】:

我正在开发一个 MVC5 项目,但在使用 razor 语法将值从视图传递到控制器上的方法时遇到了一些困难。这是我的观点的代码:

@{string value = "myValue"};

<a href="@Url.Action("MyMethod", "MyController", new {Model.UserGuid, value})" id="MyId">Click Here</a>

这是来自 MyController 的代码:

public ActionResult MyMethod(Guid id, string value){

    if(value == "myValue"){

        //do something

    } else {

        //do something different

    }
}

调试此方法时,Guid 和值都作为 null 传入。我错过了什么?我什至尝试使用 int 并没有奏效。有什么想法可以将字符串从视图传递到控制器并传递到 MyMethod?

【问题讨论】:

    标签: c# model-view-controller razor


    【解决方案1】:
    new { id = Model.UserGuid, value = value}
    

    【讨论】:

    • 这就是我所缺少的?哇。所以很高兴知道您已经在视图中分配了值。这就像一个魅力。
    • @Chris Marisic,在这种情况下,它需要是“价值=价值”。请改回来。仅仅拥有“价值”是错误的。
    • @Debo 你错了,new { value = value }new { value } 完全一样。
    • @Chris Marisic 我完全同意你的看法,但是,在这个给定的上下文中,这是不正确的。第一个“值”是指视图中的字符串“myValue”。第二个“值”是指控制器上的 MyMethod 方法。话虽如此,只要将其保留为“值”就会传递一个空值。
    • @Debo,new { id = Model.UserGuid, value = value }new { id = Model.UserGuid, value } 都应该生成相同的href="/MyController/MyController/####?value=myValue 并且参数value 的值将是"myValue" 话虽如此,原来的答案不应该有已编辑,我已将其回滚
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-28
    • 2012-01-19
    相关资源
    最近更新 更多