MVC 2: html.textboxfor ، إلخ. في vb.net 2010
-
04-10-2019 - |
سؤال
لدي طريقة عرض 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 :-) أي أفكار؟