我刚刚开始在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