Javascript 使用Jquery将动态参数传递给ASP MVC
我试图将动态参数从jquery传递到mvc控制器。这是我的jquery函数Javascript 使用Jquery将动态参数传递给ASP MVC,javascript,c#,jquery,asp.net-mvc,asp.net-mvc-4,Javascript,C#,Jquery,Asp.net Mvc,Asp.net Mvc 4,我试图将动态参数从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}
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);
}
}
公共虚拟重定向结果OpenBrowserLink(对象URL参数)
{
IDictionary paramsPair=新的RouteValueDictionary(urlParameters);
foreach(paramsPair中的var项)
{
系统.诊断.调试.写入线(项.键);
}
}
但是,它没有正确绑定。值为空。在fiddler上,这是它发送数据的方式:
知道发生了什么吗?还是有更好的方法来处理这个问题?基本上,我试图模仿Html助手发送参数的方式,并使用JQuery从控制器端绑定参数。HtmlHelper示例:Html.TextboxFor(m=>m.Text,新的{Param1=1,Param2=2,Param3=3})代码>
非常感谢您的帮助模型绑定器无法工作,因为您的对象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)
只需传递一个数组或参数