ASP.НОВАЯ начальная форма MVC3 Ajax не отправляется как Ajax

#asp.net #ajax #asp.net-mvc-3

#asp.net #ajax #asp.net-mvc-3

Вопрос:

Я сталкиваюсь с той же проблемой, о которой многие люди спрашивали ранее, когда Ajax.BeginForm не отправляет вызов как ajax, то есть Запрос.IsAjaxRequest() == false, но не повезло с предложенными решениями (отсутствуют файлы js, установлен ‘UnobtrusiveJavascript’ и т.д.)

Мой _Файл Layout.cshtml выглядит следующим образом:

 <script src="@Url.Content("~/Scripts/jquery-1.5.1.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/MicrosoftAjax.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/MicrosoftMvcAjax.js")" type="text/javascript"></script>
  

Web.config

 <add key="webpages:Version" value="1.0.0.0"/>
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
  

Вид

             @using (Ajax.BeginForm("AjaxTest", new AjaxOptions { UpdateTargetId = "result" }))
            {
                <button class="btn" onclick="this.form.submit();">Hit Me!</button>
            }
            <div id="result"></div>
  

Контроллер

     [HttpPost]
    public ActionResult AjaxTest(FormCollection formCollection)
    {
        bool isAjax = Request.IsAjaxRequest();
        return Content("Hello World");
    }
  

Я запустил ее через Firebug и не получаю никаких ошибок.

Что я здесь делаю не так?

Ответ №1:

Вы отправляете форму самостоятельно, используя onclick="this.form.submit()" .

Удалите этот бит. По крайней мере, дайте ajaxForm возможность отобразить некоторые цвета 🙂

Ответ №2:

Я не уверен, что у вас должен быть этот код в onclick. Просто установите тип кнопки на submit