MVC C # AJAX Пост-проблема маршрутизации - PullRequest
0 голосов
/ 09 апреля 2019

Я из 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()? Или поделитесь пожалуйста как правильно. Пожалуйста, помогите спасибо.

Ниже приведена иллюстрация моей проблемы.

enter image description here

От 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 }
        );

1 Ответ

0 голосов
/ 09 апреля 2019

На самом деле не ясно, что вам нужно. Если вы новичок в MVC Просьба перейти по ссылке https://www.youtube.com/watch?v=bCNyL4LfWSw

...