我剛剛開始在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);
}
非常感謝您的提示,我做到了,並且存在我剛纔想到的問題。回到我的部分視圖後,表單在Action屬性中包含Action的名稱,但不包含Controller的名稱。 代替: <表格ID = 「jform」 方法= 「POST」 行動= 「帳戶/ ChangePassword」> 它返回 <表格ID = 「jform」 方法= 「POST」 行動= 「ChangePassword」 > 一個想法,因爲系統這樣做?我有使用jQuery分配控制器可能是? 在此先感謝 Johannes – john84 2010-03-09 16:25:35
也許只是返回「返回PartialView()」,而不在構造函數中的viewdata對象。這可能是原因。 – Gidon 2010-03-10 16:41:44
不,我只是試過了,即使我從構造函數調用中刪除viewData,問題也存在。 – john84 2010-03-11 08:14:30