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
为空。
为什么第一个不被识别?
答案 0 :(得分:1)
@ViewBag.State
是Razor语法。 Razor正在使用你的cshtml文件,但是没有解析/处理javascript文件。
无论如何获取属性的一种方法是在视图中添加隐藏字段,并将值设置为dplyr
。然后从javascript中的隐藏字段中读取值 - 就像你已经为其他两个属性一样。