2017-05-18 40 views
2

我在这里是新的在stackoverflow和新的asp.net我想问如何显示消息框在mvc asp.net。这是我的代码,但会返回NullReferenceException。感谢您的help.`如何在MVC ASP.NET中显示消息框而不返回查看()

[HttpPost] 
    [ValidateAntiForgeryToken] 
    public ActionResult myfunction(MyViewModels myModel) 
    { 
     System.Web.UI.ScriptManager script_manager = new System.Web.UI.ScriptManager(); 

     if (ModelState.IsValid) { 
      createRequest(myModel); 
      script_manager.Page.ClientScript.RegisterStartupScript(this.GetType(), "showMyMessage", "ShowMessage('Requested Successfully.');", true); 
      return RedirectToAction("GeneratePDF", "Forms", myModel); 
     } 
     else 
     { 
      script_manager.Page.ClientScript.RegisterStartupScript(this.GetType(), "showMyMessage", "ShowMessage('Requested failed.');", true); 
      return RedirectToAction("Index"); 
     } 
    }` 
+1

'的RegisterStartupScript()'是Web表单代码,而不是MVC。使用javascript。 –

+0

请参阅[我可以从MVC控制器返回JavaScript通过Ajax请求查看](http://stackoverflow.com/questions/19541336/can-i-return-javascript-from-mvc-controller-to-view-via- ajax-request)返回JavaScript ... – Rainmaker

+2

你应该通过AJAX请求返回错误信息为'JavaScriptResult','alert'方法在JS客户端显示消息框。 –

回答

5

有不同的方式做同样的事情,我已经添加了三种不同的方式,你可以使用,在不同的时代需要什么你。

方法1:[推荐为您的要求,而无需返回视图()]

public ContentResult HR_COE() 
     { 


      return Content("<script language='javascript' type='text/javascript'>alert  ('Requested Successfully ');</script>"); 
     } 

内容结果类正式定义:

表示一个用户定义的内容类型,它是的结果一个行动方法。

来源:如有必要https://msdn.microsoft.com/en-us/library/system.web.mvc.contentresult(v=vs.118).aspx

其它有用的例子: http://www.c-sharpcorner.com/UploadFile/db2972/content-result-in-controller-sample-in-mvc-day-9/

https://www.aspsnippets.com/Articles/ASPNet-MVC-ContentResult-Example-Return-String-Content-from-Controller-to-View-in-ASPNet-MVC.aspx

其他方式:

方式二: 控制器代码:

public ActionResult HR_COE() 
     { 
      TempData["testmsg"] = "<script>alert('Requested Successfully ');</script>"; 
      return View(); 
     } 

查看代码:

@{ 
    ViewBag.Title = "HR_COE"; 
} 

<h2>HR_COE</h2> 

@if (TempData["testmsg"] != null) 
{ 
    @Html.Raw(TempData["testmsg"]) 
} 

方式三: 控制器代码:

public ActionResult HR_COE() 
     { 
      TempData["testmsg"] = " Requested Successfully "; 
      return View(); 

     } 

查看代码:

@{ 
    ViewBag.Title = "HR_COE_Without using raw"; 
} 

<h2>HR_COE Without using raw</h2> 

    @if(TempData["testmsg"] != null) 
    { 
<script type="text/javascript"> 
     alert("@TempData["testmsg"]"); 
</script> 
    } 

我曾亲自使用所有的三种方式,我得到的输出如预期。所以希望它肯定会对你有所帮助。

请让我知道你的想法或反馈

感谢 KARTHIK

+1

感谢您的帮助。有用。 – Mike

+0

我很高兴@Mike,我很高兴它帮助你。希望它对未来的其他人也会有所帮助.. :) –

+0

哦,还有一件事,当盒子出现时,多少秒后,页面变白了,该怎么做才不会变成白色? – Mike

相关问题