Ras*_*ash 18 asp.net-mvc jquery asp.net-ajax
调节器
[HttpPost]
public ActionResult Save(string StrContactDetails, bool IsPrimary)
{
}
$.ajax({
async: true,
type: "POST",
url: @url.Action("Helper","Save"),
data: {
StrContactDetails: Details,
IsPrimary: true
},
//data: "StrContactDetails=" + Details + "&IsPrimary=" + true,
//data: "{StrContactDetails:'" + Details + "',IsPrimary:"+ true + "}",
//contentType: "application/json; charset=utf-8",
success: function() {
},
error: function() {
}
});
Run Code Online (Sandbox Code Playgroud)
这在我的action方法需要单个参数并从ajax传递单个参数时有效.但是,当它需要两个参数时,我无法使用两个参数调用该操作.因此,传递参数存在一些问题.可能是内容类型.
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Default", action = "Login", id = UrlParameter.Optional }
).DataTokens = new RouteValueDictionary(new { area = "MyArea" });
Run Code Online (Sandbox Code Playgroud)
.../TestProj/MyArea/Helper/Save/StrContactDetails="Test"我的行动方法如下,我可以打电话.
public ActionResult Save(string StrContactDetails)
{
return Content("called");
}
Run Code Online (Sandbox Code Playgroud)
.../TestProj/MyArea/Helper/SaveEmergencyContact/StrContactDetails="test"?IsPrimary=true 如果我的行动方法如下,我可以打电话.但我得到了404.../TestProj/MyArea/Helper/SaveEmergencyContact/StrContactDetails="test"/IsPrimary=true(替换?与/)
public ActionResult Save(string StrContactDetails, bool IsPrimary)
{
return Content("called");
}
Run Code Online (Sandbox Code Playgroud)
我在这里缺少什么?我是否需要使用2个参数为ajax调用进行路由配置更改?
vin*_*yan 21
我想你可能需要使用JSON.stringify对数据进行字符串化.
var data = JSON.stringify({
'StrContactDetails': Details,
'IsPrimary':true
});
$.ajax({
type: "POST",
url: @url.Action("Dhp","SaveEmergencyContact"),
data: data,
success: function(){},
contentType: 'application/json'
});
Run Code Online (Sandbox Code Playgroud)
所以控制器方法看起来像,
public ActionResult SaveEmergencyContact(string StrContactDetails, bool IsPrimary)
Run Code Online (Sandbox Code Playgroud)
Rus*_*707 12
您可以通过不初始化url并将其写入硬编码来完成此操作
//var url = '@Url.Action("ActionName", "Controller");
$.post("/Controller/ActionName?para1=" + data + "¶2=" + data2, function (result) {
$("#" + data).html(result);
............. Your code
});
Run Code Online (Sandbox Code Playgroud)
虽然您的控制器端代码必须如下所示:
public ActionResult ActionName(string para1, string para2)
{
Your Code .......
}
Run Code Online (Sandbox Code Playgroud)
这很简单.现在我们可以通过json传递多个数据,如下所示:
var val1= $('#btn1').val();
var val2= $('#btn2').val();
$.ajax({
type: "GET",
url: '@Url.Action("Actionre", "Contr")',
contentType: "application/json; charset=utf-8",
data: { 'para1': val1, 'para2': val2 },
dataType: "json",
success: function (cities) {
ur code.....
}
});
Run Code Online (Sandbox Code Playgroud)
虽然你的控制器端代码是相同的:
public ActionResult ActionName(string para1, string para2)
{
Your Code .......
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
93681 次 |
| 最近记录: |