Rahul Modi
Rahul Modi

Reputation: 838

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?

Upvotes: 3

Views: 4787

Answers (1)

Darin Dimitrov
Darin Dimitrov

Reputation: 1039378

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.

Upvotes: 5

Related Questions