2012-03-31 1 views
2

J'utilise Ajax Form pour rendre une vue partielle dans la page.
voir ci-dessous le codeMVC - Ajax.BeginForm ne fonctionne pas

<script type="text/javascript" src="<%: Url.Content("~/Scripts/jquery-1.7.1.min.js") %>"></script> 

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

<form id="aspnetForm" runat="server" style="height: 100%;"> 
<% using (Ajax.BeginForm("demo", "demo", new AjaxOptions { HttpMethod = "Post", UpdateTargetId = "divToUpdate" }, new { @ID = "AjaxForm" })) 
        { %> 

        <%= Html.DropDownList("Demo", list, new { @id = "id", @class = "dropdown" })%> 
        <% }%> 
        <input type="submit" value="Save" /> 
        <div id="divToUpdate"> 
         <% Html.RenderPartial("UserControls/DemoPage"); %> 
        </div> 

       <% }%></form> 

Dans ce que je vous propose 4 js. J'ai une page avec l'étiquette de forme et à l'intérieur que j'ai une page de vue prtial. quand je suis sélectionner la liste déroulante et cliquez sur le bouton de sauvegarde je veux ajax post mais j'ai trouvé que toute la page est recharger.

Une idée?

Merci

Répondre

4

problème est,

  1. Vous ne pouvez pas avoir des balises emboîtées en html

Essayez comme ci-dessous,

<% using (Ajax.BeginForm("demo", "demo", new AjaxOptions { HttpMethod = "Post", UpdateTargetId = "divToUpdate" }, new { @ID = "AjaxForm" })) 
{ %> 
    <%= Html.DropDownList("Demo", list, new { @id = "id", @class = "dropdown" })%> 
    <input type="submit" value="Save" /> 
<% }%> 
<div id="divToUpdate"> 
    <% Html.RenderPartial("UserControls/DemoPage"); %> 
</div> 

Vous pouvez également changer tomber jusqu'à publication automatique, vous n'avez pas besoin de bouton de soumission séparé,

<%= Html.DropDownList("Demo", list, new { @id = "id", @class = "dropdown", @onchange = "$(this).closest('form').submit();" })%> 
+0

son travail .. Merci .. – Gate

Questions connexes