3

今のところ、ファイルを正常にアップロードできます...私が今しようとしているのは、ファイルが正常にアップロードされた場合はアラートボックスを表示するか、そうでない場合はエラー/例外のアラートを表示することです...

これが私の見解です:

using (Html.BeginForm("Upload", "Home", FormMethod.Post, new { @id = "File", enctype = "multipart/form-data"}))
        {
        <div class="control-group">                
            <input type="file" id="file" name="file" />
            <input type="submit" value="Upload" />
        </div>
        }

これが私のコントローラーです:

[HttpPost]   
public ActionResult Upload(HttpPostedFileBase file)
{
    try
    {
        //some code here for the upload....             

        /*In this part is my problem...Both Lines below is not showing the alert...*/
        //return new JavaScriptResult() { Script = "alert('The calendar XML file was uploaded successfully!');" };
        //return JavaScript("alert('The calendar XML file was uploaded successfully!');");
    }

    catch (Exception e)
    {   
        log.Error("HomeController::Upload()", e);
        return new JavaScriptResult() { Script = "alert(\"" + e.Message + "\");" };
    }
}

私が望むのは、私のビューがまだ残っていることです...ページのリダイレクトはありません...メッセージのアラートボックスを表示するだけです...ありがとう! どんなアイデアでも大歓迎です.cozは私のこの方法が推奨されていないことを知っています... :)

4

2 に答える 2

1

ここで正しい解決策を見つけることができました。

上記のリンクは、フォームを送信する前に確認ボックスを表示し、コントローラーから返された json オブジェクトであるメッセージのアラートを表示するためのものでした...

return Json(new { isok = true, message = "Successfully uploaded the calendar XML file!" }, "application/octet-stream");
于 2013-01-08T09:14:43.253 に答える
1

これは、コントローラーからアラートを取得するために行ったことです

ビューコードは次のとおりです。

@using (@Html.BeginForm("DoSomething","secure"))
{
    <input type="submit" value="get alert" />
}

コントローラーコードは次のとおりです。

[HttpPost]
        public ActionResult DoSomething()
        {
            string message = "hai";
            System.Text.StringBuilder sb = new System.Text.StringBuilder();
            sb.Append("<script type = 'text/javascript'>");
            sb.Append("window.onload=function(){");
            sb.Append("alert('");
            sb.Append(message);
            sb.Append("')};");
            sb.Append("</script>");
            //return Content("<script type='text/javascript'>alert('Hello there');</script>"); //You can get the alert with this line also
            return Content(sb.ToString(), "text/javascript");
        }

スクリプト不要でもget alertボタンクリックで直接アラート表示

それが役に立てば幸い

于 2013-01-07T12:48:26.090 に答える