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,與您目前的路線設置,沒有路線限制,你做得不對。 –