Ajax.BeginForm не работает при развертывании на WebServer - PullRequest
1 голос
/ 03 апреля 2012

У меня есть следующее определение вида на моем сайте asp.net mvc:

<% Using Ajax.BeginForm("UsrCtlChangePassword", "User", Nothing, New AjaxOptions With {.UpdateTargetId = "resultDiv", .InsertionMode = InsertionMode.Replace, .HttpMethod = "Post"}, New With {.id = "myFormID"})%>
<%: Html.ValidationSummary(True, "Invalid details supplied.")%>     

 ...View field definition in here
 ...   

<% End Using%>  

</div>

Таким образом, в основном, когда пользователь вводит неверную информацию (старый пароль не совпадает), вся страница не обновляется, только targetdiv.

Это отлично работает в моей среде разработки. Проблема, с которой я столкнулся, заключается в том, что я сейчас развернул ее на своем сервере веб-хостинга (сервер Softsys Windows 2008), и он не работает на развернутом сервере. Он полностью игнорирует логику режима вставки AJAX и просто отправляет обратно всю форму.

Почему он будет работать в dev, а не на сервере развертывания? Я проверил все библиотеки и скрипты, и все, кажется, там. Следующее - это DLL в моей папке bin: enter image description here В моем файле web.config установлены следующие ключи (я изменил UnobtrusiveJavaScriptEnabled на true, и это не имело значения):

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

А это ссылки на скрипт на моем сайте. Мастер:

<link href="../../Content/Site.css" rel="stylesheet" type="text/css" />
<link href="<%: Url.Content("~/Content/themes/Redmond/jquery-ui.css")%>" rel="stylesheet" type="text/css" />
<script src="<%: Url.Content("~/Scripts/jquery-1.5.1.min.js") %>" type="text/javascript"></script>   
<script src="<%: Url.Content("~/Scripts/modernizr-1.7.min.js") %>" type="text/javascript"></script>
<script src="<%: Url.Content("~/Scripts/jquery-ui-1.8.11.min.js") %>" type="text/javascript"></script>     
<script src="<%: Url.Content("~/Scripts/jquery.cookie.js") %>" type="text/javascript"></script>
<script type="text/javascript" src="<%: Url.Content("~/Scripts/MicrosoftAjax.js") %>"></script>
<script type="text/javascript" src="<%: Url.Content("~/Scripts/MicrosoftMvcValidation.js") %>"></script>
<script type="text/javascript" src="<%: Url.Content("~/Scripts/MicrosoftMvcAjax.js") %>"></script>   

Есть идеи?

Заранее спасибо.

1 Ответ

1 голос
/ 04 апреля 2012

Я сработал, в итоге мне понадобилось добавить следующие строки на мой сайт.master:

<% Html.EnableClientValidation()%>
<% Html.EnableUnobtrusiveJavaScript(False)%>

По какой-то причине ключи, которые я установил в web.config, игнорировались при развертывании на веб-сервере. Как только я добавил эти строки в мастер сайта, все заработало как надо.

...