2011-08-04 9 views
1

私のビューでは、開いているFORMタグと閉じているFORMタグがレンダリングされないという問題があります。以下は私のコントローラMVC3 BeginFormをレンダリングしない<form>タグ

[HttpGet, Authorize] 
    public ActionResult Edit(long id) 
    { 
     Position position = positionRepository.GetPositionById(id); 
     return View(position); 
    } 

にコードされており、これが私の見解上のコード(制御コードを省略)

@using (Html.BeginForm("Edit", "Position", new { area = "Stock", id = Model.PositionId }, FormMethod.Post, null)){} 

ページが呼び出されると、それは適切なデータをレンダリングするが、HTML側が行うあります変更を保存するために必要な開閉タグを含めないでください。私が何が欠けているかもしれないかについての手がかりは?

enter image description here enter image description here

答えて

2

私は、根本的な原因は、私のマスターページであることが判明。マスターページを追加するとき、私はMVC3リストから1つではない標準マスターページを選択しました!私は既存のマスターページを削除し、適切なページを追加して(MVC3リストから)ページをリフレッシュし、タグが適切にレンダリングされました。

0

この問題をさらに詳しく説明すると、Html.BeginForm()は親レイアウトから@RenderBody()を呼び出すときにのみ機能することがわかりました。

部分ビューのすべてのコンテンツは、マスターによって定義された@セクションにグループ化されています。このため、私は@RenderPage()と@RenderSectionだけを呼び、@RenderBody()を呼び出すことはありませんでした。我々は@RenderBody()への呼び出しを追加したら、私たちのフォームタグが登場

(私たちのすべてのコンテンツがまだセクション内で定義されていてもしてレンダリングするための「体」コンテンツがありません...)

・ホープこれは他の誰かに役立ちます...私はしばらく私はそれを把握しました...このポストは最終的な鍵を提供しました..

1

similar threadに、別のフォームタグが閉じられないか、新しいBeginFormが存在することがわかりました別のフォームタグ内にレンダリングされます。

すぐに確認するには、Html.BeginForm(...)の上に</form>を追加します。

+0

これは私の場合でした。マスターレイアウトファイルにフォームがありました。 – Jynn

関連する問題