0

焦点は、 Html.BeginForm関数の「controllerNameAsString」(一部)にあります。

HTML:

root / Views / Home / Therequestform.vbhtml

    <h2>Therequestform</h2>

@Html.BeginForm("Therequest", "Home", method:= FormMethod.Post)

    <fieldset>
        <input type="text" name="ColorName" />
        <input type="submit" name="ColorName_SubmitButton" />
    </fieldset>

コントローラー:

root / Controllers / HomeController.vb

Function Therequestform() As ActionResult

    Return View()

End Function


    <HttpPost()>
    Function Therequest() As ActionResult

        Response.Write("The color you have submitted: " & Request.Form("ColorName"))

        Return View()
    End Function


End Class

質問:

編集:ビューへの呼び出しは、コントローラー内の関数「Therequest」を使用したHTTPPOSTメソッドへの要求呼び出しの上で行われます。

への参照はControllerName、の2番目の部分で行われていますが、へのaを呼び出す関数への参照Html.BeginFormの最初の部分では行われます。Html.BeginFormrequestHTTP POST method

私が抱えている問題は、を押した後、submit button(コントローラー内の)関数の呼び出しが設定された場所で行われないことです。「送信ボタン」を押した後、次のエラーメッセージが表示されます。


アプリケーションのサーバーエラー。 ビュー「Therequest」またはそのマスターが見つからなかったか、検索された場所をサポートするビューエンジンがありません。次の場所が検索されました。

説明:現在のWebリクエストの実行中に未処理の例外が発生しました。エラーとエラーがコードのどこで発生したかについての詳細は、スタックトレースを確認してください。

例外の詳細: System.InvalidOperationException:ビュー'Therequest'またはそのマスターが見つからなかったか、検索された場所をサポートするビューエンジンがありません。次の場所が検索されました。

〜/ Views / Home / Therequest.aspx

〜/ Views / Home / Therequest.ascx

〜/ Views / Shared / Therequest.aspx

〜/ Views / Shared / Therequest.ascx

〜/ Views / Home / Therequest.cshtml

〜/ Views / Home / Therequest.vbhtml

〜/ Views / Shared / Therequest.cshtml

〜/ Views / Shared / Therequest.vbhtml

ソースエラー:現在のWebリクエストの実行中に、未処理の例外が生成されました。例外の発生源と場所に関する情報は、以下の例外スタックトレースを使用して識別できます。


その場所では「検索」または「呼び出し」は行われませんsetここで、 Html.BeginFormのパラメーター配列によって、関数executed名が設定され、また、controllerNameが設定されます-これは(root / Controllers / HomeController.vb)に設定されます-そして3番目の部分でメソッドはに設定されますPOST

問題は、設定された場所で通話が行われない 原因は何ですか?


使用したツール: VB.NET 2012、MVC 4、Visual Studio 2012、Microsoft SQL Server 2012

4

1 に答える 1

0

Therequest.vbhtmlビューに名前を付けているのに対し、ビューに名前を付けてレンダリングしようとしていますTherequestform.vbhtml

ビュー名をにTherequest.vbhtml変更するか、コントローラー名をに変更しTherequestform、それが参照されているすべての場所に変更します

于 2012-11-08T01:00:51.593 に答える