Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 控制器没有';无法从url查询接收一个参数_Javascript_Asp.net Mvc - Fatal编程技术网

Javascript 控制器没有';无法从url查询接收一个参数

Javascript 控制器没有';无法从url查询接收一个参数,javascript,asp.net-mvc,Javascript,Asp.net Mvc,ASP.NET,我有一个具有此GET方法的控制器: public ActionResult Index(String state, String searchNumber, String searchCustomer, int? page) { } 在我看来,我这样称呼它: $("#btnSearch").click(function (event) { var params = { state: '@ViewBag.State', searchNumber:

ASP.NET,我有一个具有此GET方法的控制器:

public ActionResult Index(String state, String searchNumber, String searchCustomer, int? page)
{
}
在我看来,我这样称呼它:

$("#btnSearch").click(function (event) {
   var params = {
       state: '@ViewBag.State',
       searchNumber: $('input[name=searchNumber]').val(),
       searchCustomer: $('input[name=searchCustomer]').val()
   };

   var url = window.location.href + "/Index/?" + jQuery.param(params);
   window.location.href = url;
});
其中
@ViewBag.State
是从控制器接收的字符串,而其他字段是从文本框接收的

下面是url值的真实示例:

“”

在控制器索引函数中,
searchNumber
变量设置为“17”,但
状态
设置为空


为什么第一个无法识别?

@ViewBag.State
是Razor语法。Razor在您的cshtml文件中工作,但javascript文件未被解析/处理


获取属性的一种方法是向视图中添加一个隐藏字段,其值设置为
@ViewBag.State
。然后从javascript中的隐藏字段读取值-就像您已经在为其他两个属性执行此操作一样。

在浏览器中复制和粘贴给定url会导致正确的行为。在脚本中添加
console.log('@ViewBag.State')
,并检查结果。这是你所期望的吗?是的,这是正确的。没有意义(对我来说很好)好吧,这是实际的代码。我从我的解决方案中复制并粘贴了它。我再试一次。感谢您的反馈。您是说,当提供页面时,ViewBag值被“呈现”到html中,但之后javascript无法再访问其值?这是错误的(如果是外部js文件,将发送“@ViewBag.State”值,而不是
null
)@StephenMuecke:没错!我错过了。不幸的是,即使从隐藏的输入中检索字段也会导致相同的行为,我的代码中还有其他错误。@Mark:Razor仅在*.cshtml文件中处理。如果您的javascript代码在视图文件中,它也会被处理,但如果您在单独的文件中编写js代码(我建议无论如何)“@ViewBag.State”将不会被处理。