Что ж, вопрос связан с проблемой, которую я опубликовал ранее ( Частичное представление ASP.NET MVC не вызывает мое действие ). На практике у меня есть частичное представление, которое содержит форму, после отправки формы контроллер возвращает частичное представление.
Что ж, проблема в том, что я перезагружаю страницу, которая содержит частичное представление, функция <%= Url.Action("ChangePassword", "Account") %>
возвращает « Account / ChangePassword », если я отправляю форму, а частичное возвращается контроллером.
Используя return PartialView()
, функция <%= Url.Action("ChangePassword", "Account") %>
возвращает только " ChangePassword ".
Есть идея, потому что?
Вид выглядит так:
<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;
});
});
</script>
Часть контроллера:
if (!ValidateChangePassword(currentPassword, newPassword, confirmPassword))
{
return PartialView(ViewData);
}