10

と呼ばれるエリアにコントローラーがありますAdmin

public class SiteVisitController : Controller
{
    public ViewResult ReadyForCompletion() { ... }

    public ViewResult CompleteAndExport() { ... }
}

ReadyForCompletion.cshtmlおよび、同じクラスの別のコントローラー アクションにポスト バックするビュー ( )

@using (Html.BeginForm( "CompleteAndExport", "SiteVisit" ))
{        
    <input type="submit" value="Complete &amp; Export" />
}

このフォーム用に生成された HTML には、空白のアクションがあります。

<form action="" method="post">  <input type="submit" value="Complete &amp; Export" />

</form>

これが空白のアクションを持っている理由を知りたいですか? 詳細については、私も追加しました

@Url.RouteUrl(new { controller = "ReadyForCompletion", action = "SiteVisit", area = "Admin" })

これも空の文字列を出力しました。また、空を使用するHtml.BeginForm()と、正しいアクションが生成されます。

登録路線は

        context.MapRoute(
            "Admin_manyParams",
            "Admin/{controller}/{action}/{id}/{actionId}",
            new { action = "Index", id = UrlParameter.Optional, actionId = UrlParameter.Optional }
        );
4

2 に答える 2

11

あなたの問題は、オプションのパラメーターが連続していることが原因だと思います。2 つのオプション パラメータを含むようにルートを変更するまで、問題を再現できませんでした。

参照:問題を説明するこの記事

于 2011-06-16T00:52:35.050 に答える