ورود

View Full Version : سوال: درک سینتکس Razor



irpersian20
جمعه 24 مرداد 1393, 23:49 عصر
سلام،


ما در قوانین razor میگیم که:


میتوان یک بلاک کد را با محصور کردن آن میان @} و{ نوشت:


مثل:


@model Razor.Models.product



@{
ViewBag.Title = "Index";
<h2>name: @Model.Name</h2>


@{
if(Model.Category == "Watersports"){
@:Category: @Model.Category <b> Splash!</b>
}
if (Model.Price >10){
<h5>Pricey!</h5>
}



سوال اینجاست. وقتی کل کد را در یک بلاک محصور کردیم و با @ میگیم اینها همخپه کد سی شارپ هستند و HTML نیست. پس چرا در این خط @ را نمی زاریم


if(Model.Category == "Watersports"){
[/CSHARP]

اما در خط بعدی باز نیاز هست که @ بزاریم؟ مگر اینجا همه کد سی شارپ در نظر گرفته نمیشه؟

@:Category: @Model.Category <b> Splash!</b>

مهدی کرامتی
شنبه 25 مرداد 1393, 00:30 صبح
<div style="text-align: right;">if(Model.Category == "Watersports")</div>



اتفاقا دستور if در خط فوق نیاز به @ داره.

Razor مثل یک کلید روشن و خاموش برای کد سی شارپ عمل میکنه. اولین جایی که وسط Html علامت @ دیده میشه کلید سی شارپ روشن میشه و ادامه داره تا به اولین تگ Html بعدی برسه. اونجا سی شارپ خاموش میشه تا به @ بعدی برسه.

irpersian20
شنبه 25 مرداد 1393, 09:05 صبح
سلام ممنون
خوب این تمامش گذاشته تو یک
@
{

}

sanay_esh
شنبه 25 مرداد 1393, 09:37 صبح
خوب دوست عزیز شما تمامی کدها را با {}@ محصور نمودید در Razor وقت این کاررا میکنید میتوانید کدهای html و C# را بصورت ترکیبی بنویسید.
این یک قانون در RAZOR است.

irpersian20
شنبه 25 مرداد 1393, 12:04 عصر
خوب دوست عزیز شما تمامی کدها را با {}@ محصور نمودید در Razor وقت این کاررا میکنید میتوانید کدهای html و C#‎ را بصورت ترکیبی بنویسید.
این یک قانون در RAZOR است.
سلام
تشکر از پاسخت
من وقتی کد رو میزارن داخل
@
{

}
یعنی فقط دارم کد سی شارپ میزنم. حال اگر بخواهم کد html بزنم یا از @: برای متن استفاده میکنم یا وقتی تگ اچ تی ام ال میزنم. خود razor تشخیص میده،که این اچ تی ام ال و پردازش نمیخواد انجام بشه
الان ما
@
}

{
زدیم و باز هم داریم @ میزنمی پس ما اگر
@

}
{
نزنیم چه فرقی دارد؟