Я из ASP Classic и новичок в объектно-ориентированном программировании MVC, особенно в их конфигурации перенаправления. Я понимаю концепцию Model View Controller.
У меня возникла следующая проблема:
Когда мой взгляд на Password.chtml
и идет к деталям PasswordDet.chtml
либо от
button [New] will be http://localhost:50218/Password/PasswordDet
ИЛИ
button [Edit] will be http://localhost:50218/Password/PasswordDet/123
Синтаксис URL-адреса при обратной передаче AJAX для запуска PasswordController/PasswordDet
отличается в зависимости от того, пришли вы из [New]
или [Edit]
, чтобы работала обратная передача.
Насколько я понимаю, теперь я нахожусь на PasswordDet.chtml. Срабатывание PasswordController/PasswordDet/
не должно быть var url = 'PasswordDet/' + $("#btnSubmit").val()
? Или поделитесь пожалуйста как правильно. Пожалуйста, помогите спасибо.
Ниже приведена иллюстрация моей проблемы.
От Password.chtml
до PasswordDet.chtml
У меня есть:
New
window.location.href = '@Url.Action("PasswordDet", "Password")';
Редактировать
"render": function (data, type, full, meta) {
return '<a href="/Password/PasswordDet/' + full.AutoINC + '"><img src="../../Content/myPics/edit-2-24.png" ></a>';
}
Но для того, чтобы это сработало. В PasswordDet.html
AJAX Postback
С New
Мне нужно поставить PasswordDet/
перед:
var url = 'PasswordDet/' + $("#btnSubmit").val()
И с Edit
Мне не нужно:
var url = $("#btnSubmit").val()
Разве они не должны быть одинаковыми
AjaxCode на PasswordDet.chtml
var url = 'PasswordDet/' + $("#btnSubmit").val()
var formData = $('#formPassDet').serialize();
$.ajax({
url: url,
type: "POST",
data: formData,
dataType: "json",
success: function (response) {
if (response.status == "saved") {
*****Here i don't need to put '.../" ******************
window.location.href = 'Password';
} else if (response.status == "updated") {
*****Here i have to put************************
window.location.href = '../Password/';
});
Контроллер паролей
[HttpPost]
public ActionResult PasswordDet(string id, ForgotPasswordModel viewModel)
{
some code
}
RouteConfig Не уверен, как использовать это
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Login", id = UrlParameter.Optional }
);