Синтаксис ASP.net 4, MVC и scriptmanager для использования элементов инструментария управления asp: ajax - PullRequest
0 голосов
/ 18 января 2012

Контекст: Я новичок в MVC asp.net Framework 4. В моем приложении я хочу обновить частичное представление события щелчка пользователя (используя ActionResult). В index.aspx я использую стандартный Ajax.BeginForm, связывающий div, в котором я отображаю частичное представление (которое вызывает ActionResult):

 *<%using (Ajax.BeginForm("Search", "Home", new AjaxOptions { HttpMethod = "Post", UpdateTargetId = "divToUpdate" })) 
      {  %>
    Name 
    <input id="txtName1" name="RoleName" type="text" value="" />
    <br />
    <br />
    <div id="divToUpdate">
    <%--render what you want to update here.. --%>
    <%Html.RenderPartial("~/Views/Shared/SecurityMainPartialView.ascx", Model); %>
    </div>
    <br />
    <input type="submit" id="btnSubmit" value="Search" />
    <% }%>*

Обновление частичного вида работает. Однако:

Выпуск:

В Site.Master у меня был тег формы, который я должен был удалить, потому что частичное представление перенаправило бы ссылку действия на Индекс вместо поиска. при удалении этого я больше не могу использовать тег asp: scriptmanager, который необходим для использования asp.tab и т. д. и т. д. *

Я получаю следующую ошибку: * Элемент управления 'ctl00_MainContent_ScriptManager1' типа 'ScriptManager' должен быть помещен в тег формы с помощью runat = server. * Ошибка даже для ссылок ActionLink в основной записи сайта.

Основной код сайта:

*<body>
 <%--   <form id="form1" runat="server">
 --%>   <div id="container">
        <div id="header">    
            <h1 style="width: 1207px; margin-left: 0px">PROM (Promise Remote Order Management)</h1>

        <div id="menubar">
            **<li><%= Html.ActionLink("Home", "Index", "Home")%></li>
            <li><%= Html.ActionLink("Security", "SecurityMain", "Security")%></li>
            <li style="width: 1208px; height: 0px"><%= Html.ActionLink("About", "About", "Home")%></li>**
           </div>  
        </div> 
        <div id="content" style="height: 100%; width: 100%;">
            <asp:ContentPlaceHolder ID="MainContent" runat="server" >
                <p style="height: 132px; margin-top: 0px">
                </p>


          </asp:ContentPlaceHolder>
        </div>

        <div id="footer">
            <p>© footer stuff goes here!</p>
        </div>   
       </div>
<%--    </form>--%>
</body>
</html>*

ВОПРОС:

Как я могу включить использование скриптов (ScriptManager) в мое приложение Asp.net MVC 4? Я использую MVC ScriptManager или что-то еще? Я знаю, что мы не должны использовать диспетчер сценариев в MVC, поскольку он нарушает правила ... какова моя альтернатива.

Спасибо, любая помощь будет очень признательна.

1 Ответ

0 голосов
/ 18 января 2012

Вы не должны использовать веб-элементы управления в приложении asp.net mvc. Вы можете сделать это, но я не рекомендую. Вы можете использовать некоторые библиотеки javascript, такие как jQuery, Ext.Js и т. Д., Для выполнения асинхронных операций в вашем представлении.

Мне нравится jQuery, его легко, быстро изучать и разрабатывать, и кросс-браузер (работает в Firefox, Chrome и т. Д.), И я использую его в своих веб-приложениях с asp.net mvc и работает очень хорошо. Посмотрите на эту ссылку: http://api.jquery.com/jQuery.ajax/ она покажет вам некоторые операции с ajax (вызовы get / post, результат json и т. Д.) Usign jquery lib.

jQuery поставляется в стандартном шаблоне asp.net mvc visual studio, используйте его:)

ура!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...