我可以用ASP发送消息而不是视图作为ActionResult返回吗?净MVC4
Can I send a message instead of a view back as an ActionResult with ASP.NET MVC4
我在ASP中有以下动作。净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;
});
如果注册工作,我想强制整个网页刷新。有一种方式,我可以发送回消息从actionmethod到javascript到告诉它,注册工作和javascript应该刷新整个网页?
我确实尝试返回redirecttollocal ("/");但这绝对行不通。什么这将返回一个新页面,然后将其填充在#article DIV中。
没有任何东西会自动从服务器刷新浏览器。
要从服务器刷新浏览器,您需要从服务器向客户端发送一些内容,表明您想要刷新页面。您需要编写javascript来查找刷新浏览器的指示。
客户机代码function submitDone(content) {
var json = $.parseJson(content);
if(json.isSuccess) {
//Do something here
}
$('#article').html(json.content)
}
服务器代码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 Json(new {isSuccess = true, content = model});
}
我不确定你想通过刷新页面来完成什么,如果它是为了清除表单字段。同样可以通过使用JavaScript实现。通过使用javascript而不是页面刷新,您将不会丢失页面状态,例如错误消息。
好吧,我可以想到一个快速的javascript技巧来刷新成功的页面,像这样
function submitDone(content) {
window.location.reload();
}
这将重新加载页面成功。
相关文章:
- 节点导出返回一个空对象
- ES6构造函数返回基类的实例
- 监视函数从服务返回不起作用,但作用域函数起作用
- 控制台返回var不是't定义,但它是
- 从函数返回角度承诺
- Javascript返回值只在循环中返回一次
- 从控制器返回后Ajax启动事件激发
- CKFinder 3为所选文件返回错误的URL
- 如何在d3.js中返回路径的y坐标
- 如何从jquery函数返回变量
- Angular js-返回一个包含类似
- JSONP请求返回结果,但也触发error_callback
- 如何使用Spring MVC将Facebook返回的响应数据保存在Java类中
- 从HTTPGET返回一个自定义对象列表,以便在Angular 2应用程序中使用
- JS验证ajax返回的html中的表单数据
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- ASP.NET MVC ActionResult如何返回数据以响应GET请求
- 使用Jquery ajax调用控制器中的ActionResult方法并返回数据
- 在弹出窗口中显示json返回ActionResult
- 我可以用ASP发送消息而不是视图作为ActionResult返回吗?净MVC4