ASP.NET MVC4 で次のアクションがあります
public ActionResult Register(RegisterModel model)
{
if (ModelState.IsValid)
{
// Attempt to register the user
try
{
WebSecurity.CreateUserAndAccount(model.UserName, model.Password);
WebSecurity.Login(model.UserName, model.Password);
// ?? Need some code here
}
catch (MembershipCreateUserException e)
{
ModelState.AddModelError("", ErrorCodeToString(e.StatusCode));
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
これを呼び出す次のコードがあります。
$('#article').on('submit', '#loginForm, #registerForm', function (e) {
e.preventDefault();
var $form = $(this);
var href= $form.attr('data-href');
$form.validate();
if (!$form.valid()) {
return false;
}
var data = $form.serializeArray();
$.ajax(
{
data: data,
type: 'POST',
url: href
})
.done(submitDone)
.fail(submitFail);
function submitDone(content) {
$('#article').html(content)
}
function submitFail() {
alert("Failed");
}
return false;
});
登録が機能する場合は、Web ページ全体を強制的に更新したいと思います。actionmethod から JavaScript にメッセージを送り返して、登録が機能し、JavaScript が Web ページ全体を更新する必要があることを伝える方法はありますか?
return RedirectToLocal("/"); を試しました。しかし、これは間違いなく機能しません。これが行うことは、新しいページを返し、#article DIV に入力することです。