Member 13628506 Ответов: 0

Javascript не работает на странице MVC razor (вероятно, это вызвано AJAX)


Я возвращаю результат из контроллера для просмотра, как показано ниже:
public async Task<actionresult> Index(decimal? x, decimal? y)
{

...
result = JsonConvert.DeserializeObject<list<road>>(roads);
 return View(result);
}


В том виде, который у меня есть,

function CallFunction() {

alert("test");
}
@if (Model != null)
{
   <text>alert("test")</text>
  @Html.Raw("CallFunction();");
}

  $.ajax({
          url: "Home/Index",
          type: "GET",
          dataType: "html",
          data: { val1: x, val2: y},

          success: function (data) {
                      
           },

          error: function (data)
           {
                //alert(data);
           }

           })

What I have tried:

In the code above, the alerts do not work. When I replace "if (Model != null)" with "if (true)", the Javascript alerts work. I debugged and I am sure that "if (Model != null)" evaluates to true. The goal from this is to check the model properties for specific values and then alert the user. It has to be the AJAX call back to the controller (communication is continuously going on between the controller and the view) that is causing this. Any help is appreciated.

Member 13628506

Кто-нибудь может пролить на это свет?

bbirajdar

Это не будет работать, потому что модель равна нулю, так как вы возвращаете Json из действия контроллера, а не модель. Измените свой return View (), чтобы вернуть модель.

Member 13628506

Модель не является нулевой. Понять это. Проверил значение модели в функции success, вернув объект JSON из контроллера.

0 Ответов