【问题标题】:URL string parameters passed to MVC controller action arrive as null传递给 MVC 控制器操作的 URL 字符串参数以 null 形式到达
【发布时间】:2012-06-28 19:32:07
【问题描述】:

有控制器:

public class MyController : Controller
{
    [HttpGet]
    public ActionResult MyAction(int iMode, string strSearch)
    {
        return View();
    }
}

在我看来,我有一个 id=center 的 div

我在javascript中执行以下代码

url = "/MyController/MyAction?iMode=7&strSearch=as";
$('#center').load(url); 

当调试器在我的操作中的第一行断点时,iMode 变量显示正确的值 7,strSearch 参数到达为 null。

欢迎任何帮助/建议。

【问题讨论】:

    标签: javascript asp.net-mvc string controller null


    【解决方案1】:

    只需使用 & 号而不是 &

    url = "/MyController/MyAction?iMode=7&strSearch=as";

    【讨论】:

    • 谢谢。现在工作得很好。这个字符串是通过 MVC 辅助函数 @Url.Action("MyAction", "MyController", new { iMode ="PLACEHOLDER", strSearch = "PLACEHOLDER1" }) 生成的,然后我替换了占位符,但假设 &成为一个 MVC 怪癖。
    • 哈哈是的,有很多怪癖..您应该使用jQuery ajax中的数据对象来发送数据。它负责名称值对、编码、
    【解决方案2】:

    感谢 Innatepirate 的提示。浪费了足够的时间试图弄清楚为什么控制器得到空值。用 & 号替换 & 就可以了。顺便说一句,我正在做简单的古老的 window.location.href = link 并且仍然有问题。可能是 MVC 解析和路由搞砸了。

    【讨论】:

      猜你喜欢
      • 2019-07-02
      • 2016-12-15
      • 1970-01-01
      • 2016-09-25
      • 2011-08-17
      • 2010-10-23
      • 1970-01-01
      • 2011-07-25
      • 1970-01-01
      相关资源
      最近更新 更多