2012-03-09 21 views
0

私は2つのラジオボタン(yes/no)があるcutomコントロールを構築するために剃刀ジェネレータでヘルパーを作成しています。 このためにHtml.BeginFormを使用したいと思います。Razor Generatorを使用したHtml.BeginForm()

しかし、それはできません。

あなたはそれを行う方法や他の方法を知っていますか?

ありがとうございました。

編集:私はこのコード

@using (Html.BeginForm()) { 
    <input type="radio"/> 
    <input type="radio"/> 
} 

を置くとき

私はこのエラー

'System.Web.WebPages.HtmlHelper' does not contain a definition for BeginForm and no extension method 
'BeginForm' accepting a first argument of type 'System.Web.WebPages.Html.HtmlHelper'could be found 
+0

あるのですか?エラーメッセージはありますか? – eouw0o83hf

+0

'System.Web.WebPages.HtmlHelper'にはBeginFormと拡張メソッドの定義が含まれていません 'BeginForm' 'System.Web.WebPages.Html.HtmlHelper'タイプの最初の引数を受け入れることがあります – kbaccouche

答えて

3

これはおそらく名前空間または参照の問題です。

まず、System.Web.WebPagesがプロジェクト参照に表示されていることを確認します。次に、ビューの最上部に

@using System.Web.WebPages 

を追加します。それが修正された場合は、参照をweb.configに移動することができます。this answer on the same type of topic

1

を取得し、あなたが質問をするときに我々はあなたがしているものを見ることができますので、あなたのコードを投稿してください。間違っている。試してみてください:

@using (Html.BeginForm()) { 
     <input type="radio"/> 
     <input type="radio"/> 
} 
3

ヘルパー関数がApp_Codeフォルダにある場合、ヘルパー関数にこのコードを追加します。

var Html = ((System.Web.Mvc.WebViewPage)WebPageContext.Current.Page).Html; 
var Ajax = ((System.Web.Mvc.WebViewPage)WebPageContext.Current.Page).Ajax; 

ファイルに右の名前空間を含めることを忘れないでください:@using ....

+0

それぞれのヘルパーメソッドでこれらの参照があり、Resharperに変数の難読化などについて不平を言う – trevorgk

2

私にとって、それは行方不明の名前空間、そうではなくeouw0o83hfで述べたものであった:

@using System.Web.Mvc.Html; 
0

私は同じ問題に遭遇し、ちょうどそれを解決しました。 viewsフォルダの下のweb.configファイルでバージョンを変更しました。ここ は、あなたが「それを行うことはできません」とは何を意味するか私の以前のコード

<system.web.webPages.razor> 
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, **Version=5.0.2.2**, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
<pages pageBaseType="System.Web.Mvc.WebViewPage"> 
    <namespaces> 
    <add namespace="System.Web.Mvc" /> 
    <add namespace="System.Web.Mvc.Ajax" /> 
    <add namespace="System.Web.Mvc.Html" /> 
    <add namespace="System.Web.Optimization"/> 
    <add namespace="System.Web.Routing" /> 
    <add namespace="CMSSol" /> 
    </namespaces> 
</pages> 

、ここでは、私の新しいコード

<system.web.webPages.razor> 
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, **Version=5.0.0.0**, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
<pages pageBaseType="System.Web.Mvc.WebViewPage"> 
    <namespaces> 
    <add namespace="System.Web.Mvc" /> 
    <add namespace="System.Web.Mvc.Ajax" /> 
    <add namespace="System.Web.Mvc.Html" /> 
    <add namespace="System.Web.Optimization"/> 
    <add namespace="System.Web.Routing" /> 
    <add namespace="CMSSol" /> 
    </namespaces> 
</pages> 

関連する問題