2010-03-08 70 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。你必须在父视图中定义它

相关问题