Ajax调用msgcall方法:
PopAjaxPost('mesaj/popup/msgcall/' + i + '/' + $('input#mesajkategori').val(), mysarr, function (data) {
if (data.Durum == '1') {
$wrapper.html('<a href="javascript:void(0);" class="all">Mesaj</a><div class="preview"><div class="block"><strong>Gönderen:</strong>'
+ data.Data.Mesaj.Gonderen + '<br /><p>Sayın <strong>' + data.Data.Mesaj.Alici + '</strong></p><p>'
+ data.Data.Mesaj.Mesaj + '</p></div>' + (data.Data.Mesaj.SecenekId > 1 && !giden ? ('<input type="submit" value="Cevapla" onclick="mesajcevapla('
+ data.Data.Mesaj.MesajId + ');return false;" style="margin-bottom: 8px;">') : '') + '</div>');
}
else {
}
});
这是带有三个参数的msgcall方法:
[HttpPost]
[AjaxException]
[UserFilter]
public ActionResult MsgCall(string id, string pid, MsgHire model)
{
....
}
它不会使用提供的参数调用msgcall方法。如果我删除+ i + '/'
,它会调用msgcall方法。我做错了什么?
来自Route.config:
routes.MapRoute("MesajPopup", "mesaj/popup/{action}/{id}",
new { controller = "Mesaj", action = "Liste", id = UrlParameter.Optional });
routes.MapRoute("Mesaj", "mesaj/{action}/{id}",
new { controller = "Mesaj", action = "Liste", id = UrlParameter.Optional });
答案 0 :(得分:1)
没有名为pid
的其他参数的配置,因此您应该为此参数定义maproute。
添加以下内容:
routes.MapRoute("Msg_Call", "mesaj/popup/{action}/{id}/{pid}",
new {
controller = "Mesaj",
action = "Liste",
id = UrlParameter.Optional,
pid = UrlParameter.Optional
});