0
如何在我的区域注册中区分这两条路线?为什么我的表单没有发布到正确的控制器操作?
这些都是在该区域注册的最后2点的路由。
第一条路线的视图被加载时是。工作正常。
第一个路由加载,然后才能发布到相同的控制器,但不同的操作方式。
我从来没有从控制器确定。由于路由问题,它可能不会触及控制器。
我缺少什么?
context.MapRoute(
"Load",
"app/respond/{Id}",
new { controller = "Controller1", action = "Index" }
);
context.MapRoute(
"Update",
"app/respond/{action}",
new { controller = "Controller1", action = "Update" }
);
这是形式的外观:
@using (Html.BeginForm("Update", "Respond", FormMethod.Post, new { id = "frmUpdate" }))
{
//all form fields go here
}
这是张贴是如何完成的:
$('#frmUpdate').submit(function() {
//verify all field values
$.ajax({
url: this.action,
type: this.method,
data: $(this).serialize(),
success: function (result) {
if (result.s == 'OK')
alert("Success! Response updated");
else
alert("Sorry! Update failed.");//this is what I get
}
});
return false;
});
我的控制器:
[HttpPost]
public ActionResult Update(MyModel model)
{
return Json(new { s = "OK", m = "Hi from controller" });
}
在我的情况下,两种情况下都有完全相同的网址,但我有不同的操作值。我无法在id上添加约束,因为第二个路由也具有相同的id,因为它是相同的url - 所有这些都是因为我在用户提交表单后将用户保留在同一页面上。我只是显示用户结果异步的方式。 – kheya
我加载一个获得提交的表单。提交后,我做了一些数据库操作,然后想要将结果废弃给用户。这是使用jquery完成异步。加载操作与更新操作不同。我做对了吗? – kheya
@Projapati,与您目前的路线设置,没有路线限制,你做得不对。 –