Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use of @: in .cshtml

For example, I display some text in the view:

@:<link href="/Content/stylesheet.css" rel="stylesheet" type="text/css" /> 

@:<script src="/bundles/scripts" type="text/javascript"></script>

What is @: and when and how should I use it?

like image 921
Rahul Modi Avatar asked Jan 17 '26 20:01

Rahul Modi


1 Answers

This operator is useful in conjunction with other Razor server side operators when you want to output something as a literal text.

For example:

@if (model.Foo) {
    @:Some text to be written directly.
}

You can't just write this because it would produce an error:

@if (model.Foo) {
    Some text to be written directly.
}

So basically for your example where the output is already HTML tags you don't need this operator. But when you want to mix some server side Razor markup with an explicit output then you could use it. You could also use the special <text> tag to achieve the same effect:

@if (model.Foo) {
    <text>
    Some text to be written directly.
    </text>
}

This will trick the Razor parser to treat the text that you want to output to the HTML as literal and not consider it as server side code.

Another example. Let's suppose that you want to output some HTML tag that doesn't have a corresponding opening tag:

@if (model.Foo) {
    @:</div>
}

If you just wrote this:

@if (model.Foo) {
    </div>
}

then the Razor parser would have complained as it wouldn't know about an opening div tag.

like image 86
Darin Dimitrov Avatar answered Jan 20 '26 10:01

Darin Dimitrov