質問

このサンプルASP.NET MVC 2.0ビューはC#で表示されます。これは、ファーストネーム、姓、電子メールを持つ強力なタイプモデルにバインドされています。

<div>
    First: <%= Html.TextBoxFor(i => i.FirstName) %>
    <%= Html.ValidationMessageFor(i => i.FirstName, "*") %>
</div>
<div>
    Last: <%= Html.TextBoxFor(i => i.LastName) %>
    <%= Html.ValidationMessageFor(i => i.LastName, "*")%>
</div>
<div>
    Email: <%= Html.TextBoxFor(i => i.Email) %>
    <%= Html.ValidationMessageFor(i => i.Email, "*")%>
</div>

VB.NET 10の適切な構成要素を次のように見て、VB.NETに変換しました。

<div>
    First: <%= Html.TextBoxFor(Function(i) i.FirstName) %>
    <%= Html.ValidationMessageFor(Function(i) i.FirstName, "*") %>
</div>
<div>
    Last: <%= Html.TextBoxFor(Function(i) i.LastName)%>
    <%= Html.ValidationMessageFor(Function(i) i.LastName, "*")%>
</div>
<div>
    Email: <%= Html.TextBoxFor(Function(i) i.Email)%>
    <%= Html.ValidationMessageFor(Function(i) i.Email, "*")%>
</div>

運はありません。これは正しいですか、そうでない場合、どの構文を使用する必要がありますか?繰り返しますが、私はASP.NET MVC 2.0を使用しています。これは、強くタイプされたモデルに縛られたビューです... MVC 2はまだ.NET 2010の新しい言語構成をサポートしていませんか?

これはVB.NETプロジェクトであり、このヘッダーでVBを正しく参照してください。

" %>

モデルクラスの定義は次のとおりです。デフォルトのプロジェクト名空間はmvcsample.vbです。

Namespace Models.Validation
    Public Class ValidationSampleTestClass
        <Required(ErrorMessage:="First name required.")> _
        Public Property FirstName() As String
            Get
                Return m_FirstName
            End Get
            Set(ByVal value As String)
                m_FirstName = value
            End Set
        End Property
        Private m_FirstName As String
        .
        .
        .
    End Class
End Namespace

ありがとう。

役に立ちましたか?

解決

ああ、私の側で馬鹿げている。私の継承は<>を使用しました、これはC#のみです。必要だった:

System.Web.Mvc.ViewPage(Of MyModel)

そして、それはエラーを修正しました。

他のヒント

ページ指令の言語を変更しましたか:

<%@ Page 
    Language="VB" 
    MasterPageFile="~/Views/Shared/Site.Master" 
    Inherits="System.Web.Mvc.ViewPage<SomeModel>" %>

私はVBの専門家ではありませんが、これは

    <%@ Page 
Title="" 
Language="VB" 
MasterPageFile="~/Views/Shared/Site.Master" 
Inherits="System.Web.Mvc.ViewPage" %> 

これに変更する必要があります

    <%@ Page 
Title="" 
Language="VB" 
MasterPageFile="~/Views/Shared/Site.Master"
Inherits="System.Web.Mvc.ViewPage<Models.Validation.ValidationSampleTestClass>" %> 

編集:更新; TextBoxforは((オブジェクト、オブジェクトの)FUNCの)式を探し、これを行うためにキャストすることにより、それが機能することがわかりました。

<div>
    First: <%= Html.TextBoxFor(Function(i) DirectCast(i, ValidationSampleTestClass).FirstName)%>
    <%= Html.ValidationMessageFor(Function(i) DirectCast(i, ValidationSampleTestClass).FirstName, "*")%>
</div>
<div>
    Last: <%= Html.TextBoxFor(Function(i) DirectCast(i, ValidationSampleTestClass).LastName)%>
    <%= Html.ValidationMessageFor(Function(i) DirectCast(i, ValidationSampleTestClass).LastName, "*")%>
</div>
<div>
    Email: <%= Html.TextBoxFor(Function(i) DirectCast(i, ValidationSampleTestClass).Email)%>
    <%= Html.ValidationMessageFor(Function(i) DirectCast(i, ValidationSampleTestClass).Email, "*")%>
</div>

しかし今、私はランタイムエラーを取得します:

説明:このリクエストのサービスに必要なリソースの編集中にエラーが発生しました。次の特定のエラーの詳細を確認し、ソースコードを適切に変更してください。

コンパイラエラーメッセージ:BC30205:予想されるステートメントの終了。

ソースエラー:

行46:_行47:パブリッククラスビューズ_Validation_index_aspx行48:System.web.Mvc.ViewPage Line 49を継承:System.Web.SessionState.IreQuiressessionState、System.Web.Ihttphandler Line 50:

ソースファイル:c: windows microsoft.net framework v4.0.30319 companis asp.net files root 5a4e2626 dee8be7e app_web_index.aspx.b3b8acce.cmmfnwms.0.vbライン:48ライン

VBで勝つことはできません:-)アイデアはありますか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top