2010-03-08 58 views
2

我剛剛開始在ASP.NET MVC上構建一個小型簡單網站,在一個頁面中,我使用的是部分視圖,部分視圖代表了一個簡單的應該提交的表單按鈕點擊,如果我點擊第一次它成功提交,並返回我的部分視圖與我的驗證消息(如果內容無效),但如果我想再次嘗試的行動不會再次調用。任何想法?ASP.NET MVC局部視圖不會調用我的動作

查看:控制器的

<form action="<%= Url.Action("ChangePassword", "Account") %>" method="post" id="jform"> 
    <div> 
     <fieldset> 
      <legend>Account Information</legend> 
      <p> 
       <label for="currentPassword">Current password:</label> 
       <%= Html.Password("currentPassword") %> 
       <%= Html.ValidationMessage("currentPassword") %> 
      </p> 
      <p> 
       <label for="newPassword">New password:</label> 
       <%= Html.Password("newPassword") %> 
       <%= Html.ValidationMessage("newPassword") %> 
      </p> 
      <p> 
       <label for="confirmPassword">Confirm new password:</label> 
       <%= Html.Password("confirmPassword") %> 
       <%= Html.ValidationMessage("confirmPassword") %> 
      </p> 
      <p> 
       <input type="submit" value="Change Password" /> 
      </p> 
     </fieldset> 
    </div> 
</form> 
<!--<% } %>--> 
</div> 

<script> 
    $(function() { 
     $('#jform').submit(function() { 
      $('#jform').ajaxSubmit({ target: '#FmChangePassword' }); return false; 
     }); 
    }); 

    /*$(document).ready(function() { 
    $('#jform').live('submit', function() { 
      $.post($(this).attr('action'), $(this).serialize(), function(data) { 
       $("#jform").replaceWith($(data)); 
      }); 
      return false; 
     }); 
    });*/ 

</script> 

部分:

 if (!ValidateChangePassword(currentPassword, newPassword, confirmPassword)) 
     { 
      return PartialView(ViewData);     
     } 

回答

1

使用Firebug來看看返回的HTML,檢查是否一切正常。檢查FireBug的控制檯,以查看第二次單擊時發佈的數據(以及位置)。

+0

非常感謝您的提示,我做到了,並且存在我剛纔想到的問題。回到我的部分視圖後,表單在Action屬性中包含Action的名稱,但不包含Controller的名稱。 代替: <表格ID = 「jform」 方法= 「POST」 行動= 「帳戶/ ChangePassword」> 它返回 <表格ID = 「jform」 方法= 「POST」 行動= 「ChangePassword」 > 一個想法,因爲系統這樣做?我有使用jQuery分配控制器可能是? 在此先感謝 Johannes – john84 2010-03-09 16:25:35

+0

也許只是返回「返回PartialView()」,而不在構造函數中的viewdata對象。這可能是原因。 – Gidon 2010-03-10 16:41:44

+0

不,我只是試過了,即使我從構造函數調用中刪除viewData,問題也存在。 – john84 2010-03-11 08:14:30

0

您不能在部分視圖中進行Javasript。你必須在父視圖中定義它