2017-05-18 9 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コントローラからビューにAJAX要求を介してjavascriptを返すことができます](http://stackoverflow.com/questions/19541336/can-i-return-javascript-from-mvc-controller-to-view-via- ajax-request)return JavaScript ... – Rainmaker

+2

AJAXリクエストを介してエラーメッセージを 'JavaScriptResult'として返すべきです。' alert'メソッドはJSのクライアントサイドにメッセージボックスを表示します。 –

答えて

5

同じことを行うにはさまざまな方法がありますが、私は3つの異なる方法を追加して、あなたが使用することができます。

ウェイ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

その他の方法:

ウェイ2: コントローラコード:

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"]) 
} 

ウェイ3: コントローラーコード:

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> 
    } 

私は個人的にすべての3つの方法を使用していると予想されるように、私は出力を得ました。だから、それは確かにあなたのために役立つことを願っています。

親切に私は自分の考えやフィードバックをお聞かせ

おかげ カルティク

+1

助けてくれてありがとう。できます。 – Mike

+0

私の喜び@Mykeそしてそれがあなたを助けて本当にうれしいです。それは将来も他の人に役立つことを願っています:) –

+0

ああもう一つ、ボックスが表示されたら、何秒後にページが白くなったので、白くならないように何をするのですか? – Mike

関連する問題