سؤال

لدي طريقة عرض 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 ، ورؤية البنيات المناسبة في vb.net 10 ، على النحو التالي:

<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>" %> 

تحرير: تحديث ؛ اكتشف أن مربع النص يبحث عن التعبير (من 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: فئة عامة pains_validation_index_aspx السطر 48: errantits system.web.mvc.viewpage line 49: system.

ملف المصدر: c: windows microsoft.net framework v4.0.30319 files asp.net المؤقتة root 5a4e2626

لا أستطيع الفوز مع VB :-) أي أفكار؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top