0

post と呼ばれる部分コントローラーを作成しましたが、これは正常に動作しています。ここで、モーダル ポップアップを介してホーム インデックスから呼び出したいと思います。ここに私のコード階層があります(それが重要な場合)

View
  Account 
  Home
      - Index
  Post
      - Index

ホーム/インデックス ビュー

    <script src="~/Scripts/jquery-1.7.1.js"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script>


<script type="text/javascript">
    $(function () {
        $('.popupLink').click(function () {
            $('<div id="popupfooterdiv"/>').appendTo('body').dialog({
                close: function (event, ui) {
                    dialog.remove();
                },
                modal: false,
                draggable: false,
                width: 500,
                height: 400,
                resizable: false,
            }).load(this.href, {});
            return false;
        });
    });
</script>

@Html.ActionLink("Open Pop Up", "Home", "actionName",  new {@class="popupLink"})

ホームコントローラー

       [HttpPost]
    public ActionResult actionName()
    {
        return PartialView("Post");
    }

クリックすると、以下のエラーのあるエラーページにリダイレクトされます

  Server Error in '/' Application.

The resource cannot be found.

Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable.  Please review the following URL and make sure that it is spelled correctly. 

Requested URL: /Home/Home

また、私のURLはに変わります

http://localhost:2654/Home/Home?Length=10

どこが間違っていますか?また、ユーザーが Post インデックス ビューからデータを保存するときに、このポップアップを閉じるにはどうすればよいですか。

4

2 に答える 2

0

問題は次の行のようです。

@Html.ActionLink("Open Pop Up", "Home", "actionName", new {@class="popupLink"})

代わりに次のことを試してください。

@Html.ActionLink("Open Pop Up", "actionName", "Home", null, new {@class="popupLink"})

または、名前付きパラメーターを使用して、次のようにします。

@Html.ActionLink(linkText: "Open Pop Up", actionName: "actionName", controllerName: "Home", routeValues: null, htmlAttributes: new { @class = "popupLink" })

ヘルパーには 10 個のオーバーロードがあり、主にとパラメータActionLinkの組み合わせが異なります。したがって、実際に必要なものを取得するために呼び出した方法に注意する必要があります。Stringobject

問題の行によって生成されている HTML を見た場合: その href がhttp://localhost:2654/Home/Home?Length=10. この ActionLink メソッドのオーバーロードを呼び出し、actionNameの値を使用し、(10 文字の長さ) をクエリ パラメーターとして"Home"使用するのが最善であると言えます。"actionName"

于 2014-04-21T00:51:40.967 に答える