使用Jquery传递动态参数给ASP MVC
本文关键字:ASP MVC 参数 动态 Jquery 使用 | 更新日期: 2023-09-27 18:13:45
我试图从jquery传递动态参数到mvc控制器。这是我的jquery函数
function OpenBrowserUrl(type, params)
{
window.open("{0}?linkType={1}&{2}".format(URL.openBrowserLinkURL, type, $.param(params)), '_blank');
}
参数会根据传入者的不同而有所不同。例如,它是这样一个对象:var param = { P1: "Test1", P2: "Test2" }
我试图绑定那些在MVC控制器。这是它现在的样子:
public virtual RedirectResult OpenBrowserLink(object urlParameters)
{
IDictionary<string, object> paramsPair = new RouteValueDictionary(urlParameters);
foreach (var item in paramsPair)
{
System.Diagnostics.Debug.WriteLine(item.Key);
}
}
但是,它没有正确地绑定。值为空。在fiddler上,它是这样发送数据的:http://www.url.com?param1=1¶m2=2¶m3=3
知道是怎么回事吗?或者有更好的方法来处理这个问题吗?基本上,我试图模仿Html助手发送参数的方式,并使用JQuery从控制器端绑定它。HtmlHelper示例:Html.TextboxFor(m => m.Text, new { Param1=1, Param2=2, Param3=3 });
谢谢你的帮助
模型绑定器不会工作,因为你的object urlParameters
没有属性。您应该创建强类型模型:
public class UrlParamerters
{
public string Param1 {get; set;}
public string Param2 {get; set;}
public string Param3 {get; set;}
}
或者改变你的动作签名:
public virtual RedirectResult OpenBrowserLink(string[] params)