控制器
[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() {
}
});
当我的操作方法只需要一个参数时,我可以通过ajax传递单个参数来使用它。但是,如果它需要两个参数,我就无法调用它。因此,在传递参数方面出现了一些问题。可能是内容类型的问题。
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Default", action = "Login", id = UrlParameter.Optional }
).DataTokens = new RouteValueDictionary(new { area = "MyArea" });
当我的操作方法如下时,我可以调用.../TestProj/MyArea/Helper/Save/StrContactDetails="Test"
。
public ActionResult Save(string StrContactDetails)
{
return Content("called");
}
如果我的操作方法如下,我可以调用.../TestProj/MyArea/Helper/SaveEmergencyContact/StrContactDetails="test"?IsPrimary=true
。但是当我把 ?
替换成 /
后,即变成.../TestProj/MyArea/Helper/SaveEmergencyContact/StrContactDetails="test"/IsPrimary=true
,返回 404 错误。
public ActionResult Save(string StrContactDetails, bool IsPrimary)
{
return Content("called");
}
我这里缺少什么?对于带有两个参数的 AJAX 调用,我需要更改路由配置吗?
data: { StrContactDetails: '详细信息',IsPrimary: 'true' }
(或使用JSON.stringify()
)。 - user3559349/SaveEmergencyContact/Dhp
!如果你有DhpController
,请将其更改为url: '@url.Action("SaveEmergencyContact","Dhp")',
- user3559349