0

私はこのお問い合わせフォームを作成しています。これは、ドキュメントで見つけることができるものとほぼ同じです:http: //our.umbraco.org/documentation/Reference/Mvc/forms

問題は、アクションでViewDataコレクションにデータを追加しているのに、ビューにアクセスできないことです。

アクションは次のとおりです。

public ActionResult ProcessForm(ContactFormModel model)
{
    if (!ModelState.IsValid) {
        // do something here
        return CurrentUmbracoPage();
    }    
    // process form
    // set success flag
    ViewData("SuccessMessage") = "We will be contacting you soon..";
    return RedirectToCurrentUmbracoPage();
}

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

<h1>@ViewData("SuccessMessage")</h1>

このエラーが返されます:

コンパイルエラー、エラーメッセージ:CS0103:名前'ViewData'は現在のコンテキストに存在しません

4

2 に答える 2

1

ViewDataはViewData["some key"]、ではなく、を使用して設定および呼び出す必要がありViewData("some key")ます。これは、ViewDataが本質的にディクショナリであり、ControllerBaseクラスのメソッドではないためです。

その使用法の良い説明については、ここを参照してください。

于 2012-12-12T09:05:07.547 に答える
0

別のビュー/アクションをリダイレクトしているため、これは機能せず、このViewDataにアクセスできません。

これを行う場合は、部分ビューをレンダリングします。

于 2013-02-12T13:35:06.147 に答える