これは私が問題を抱えている行です:
<% using(Html.BeginForm("Create#result", "Report", FormMethod.Post)) { %>
C# 3.5 と MVC2 を使用すると、フォームは次のようにレンダリングされます。
<form action="/Report.aspx/Create#result" method="post">
C# 4.0 と MVC2 では、フォームは次のようにレンダリングされます。
<form action="/Report.aspx/Create%23result" method="post">
これは問題を引き起こします:
System.Web.HttpException (0x80004005): A public action method 'Create#result' was not found
新しい動作には問題があり、ハッシュをエスケープしたくないと思います。どこで発生しますか?行動を変えることはできますか?
MVC のバージョンはいずれ更新されるはずですが、この動作が問題を引き起こし始めたとき、私は別の部分に取り組んでいました。
アップデート
クライアントでjqueryを使用してフォームアクションを更新することで解決しました。
フォーム
<% using(Html.BeginForm("Create", "Report", FormMethod.Post, new { id = "frmReport" })) { %>
Javascript
var frmReport = $("#frmReport");
if (0 < frmReport.length) {
var action = frmReport.attr("action");
action = action + "#result";
frmReport.attr("action", action);
}