كيفية استخدام بناء الجملة العام داخل ملف عرض الحلاقة؟

StackOverflow https://stackoverflow.com/questions/4253224

سؤال

كنت أحاول استخدام البيان التالي:

@Html.Test<ISQL>().Nand()

ومع ذلك ، فإن الحلاقة تختنق في <قبل ISQL.

أي عمل رسمي حوله؟

هل كانت مفيدة؟

المحلول

لاستخدام الطرق العامة التي تحتاجها للهروب من التعبير

@(Html.Test<ISQL>().Nand())

نصائح أخرى

لقد وجدت هذا السؤال فقط عندما كنت أبحث عن هذا "الخطأ نفسه" عند ترقية MVC.

كان لدي :

لا يعمل:

@{ 
   ViewBag.Title = "Something " + @Model.Title;
   var something = (IEnumerable<SelectListItem>)ViewBag.Options;    
}

على ما يبدو ، أصبح بناء الجملة أكثر صرامة ، وكما أنت داخل كتلة @ {} ، يجب ألا تضيف @ قبل نموذج. title على المثال. لكن الخطأ في محرر التعليمات البرمجية كان يشير إلى العام وكان يجعلني مجنونًا.

إنه يعمل بشكل جيد إذا لم يكن هناك <> داخل الكود ، ولكن فقط إزالة @ من model.title إصلاح المشكلة.

الأعمال:

@{ 
   ViewBag.Title = "Something " + Model.Title;
   var something = (IEnumerable<SelectListItem>)ViewBag.Options;    
}

آمل أن يساعد هذا على أي شخص

إنني أقدر أن هذه "الإجابة" متأخرة إلى حد ما ، ومن الواضح أن السؤال قد تم الإجابة عليه بشكل مرضٍ. ومع ذلك ، لأي زوار مستقبليين لهذه الصفحة ، إذا كنت بعد دليل مرجعي أكثر اكتمالا هناك MS مقدمة في بناء الجملة الحلاقة وكذلك فيل هاك مفيد جدا مرجع سريع الحلاقة مشاركة مدونة.

كان لدي حالة غريبة عندما كان لدي عدة مهام داخل واحدة @{ ... } بوك.

@{
    // ... other assignments (without error)
    List<string> stringList = new List<string>()  // ERROR MESSAGE HERE
}

مهما فعلت ، كانت هناك دائمًا أخطاء ، مثل هذا:

يتطلب استخدام "قائمة" النوع العام وسيطات نوع واحد

الحل: أضع خط المهمة على ثانيا @{ ... } بوك.

@{
    // ... other assignments
}
@{
    List<string> stringList = new List<string>()  // WORKS
}

إنه يتعلق بالحرف @ ، هذا المثال يعمل قبل الترقية

@{
    string @class = ViewBag.@class;
    IDictionary<string, object> htmlAttributes = new Dictionary<string, object>();
}

بعد الترقية ، يجب فصله إلى كتلتين

@{  string @class = ViewBag.@class; }
@{  IDictionary<string, object> attrs = new Dictionary<string, object>(); }
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top