控制器没有从url查询中接收一个参数

时间:2018-03-13 21:53:25

标签: 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: $('input[name=searchNumber]').val(),
       searchCustomer: $('input[name=searchCustomer]').val()
   };

   var url = window.location.href + "/Index/?" + jQuery.param(params);
   window.location.href = url;
});

其中@ViewBag.State是从控制器接收的字符串,而其他字段来自texbox。

这是url值的一个真实示例:

  

" http://localhost:49396/Orders/Index/?state=Opened&searchNumber=17&searchCustomer="

在控制器索引功能中,searchNumber变量设置为" 17"但是state为空。

为什么第一个不被识别?

1 个答案:

答案 0 :(得分:1)

@ViewBag.State是Razor语法。 Razor正在使用你的cshtml文件,但是没有解析/处理javascript文件。

无论如何获取属性的一种方法是在视图中添加隐藏字段,并将值设置为dplyr。然后从javascript中的隐藏字段中读取值 - 就像你已经为其他两个属性一样。