Razor View и HTML текст - PullRequest
       5

Razor View и HTML текст

1 голос
/ 15 января 2012

Я пытаюсь справиться с Razor, и попал в основную загадку. Я создаю небольшое меню на основе статуса аутентифицированного пользователя. Но я делаю это неправильно.

<div>
    <a href="/">Home</a>&nbsp;&nbsp; 
    <a href="/">List</a>
    @if (Request.IsAuthenticated)
    {
        &nbsp;
        &nbsp;
        <a href="/">Upload</a>
        &nbsp;
        &nbsp;
        <a href="/logout" onclick="return confirm('Are you sure you want to delete this image?');">Logout</a>
    }
</div>

Ему не нравится HTML в моем разделе {}. Я думаю, что он ожидает тег HTML ... Что-то вроде <div>, но, поскольку я использую &nbsp, это не радует. Как мне это сделать?

Кроме того, я пытаюсь обработать тег изображения. Но это терпит неудачу.

@using GalleryPresentation.Models
@model IndexModel
@{
    ViewBag.Title = "Craig and Melanie's Digital Moments";
}

<br/>
<div style="text-align: center">
    <img src="@Html.Raw(m => m.RandomImageUrl) />
</div>

где моя модель просто:

{
    public class IndexModel
    {
        public string RandomImageUrl { get; set; }
    }
}

Ответы [ 3 ]

3 голосов
/ 15 января 2012

Razor не может обнаружить, что вы входите в режим HTML. Используйте специальный тег <text> Razor, чтобы указать, что вы находитесь в режиме HTML.

1 голос
/ 15 января 2012

Если вы хотите отображать контент из HTML, вы можете использовать, например, метод @ Html.Raw ().Таким образом, ваш код будет

     <div>
                        <a href="/">Home</a>&nbsp;&nbsp;  
                        <a href="/">List</a> 
                        @if (Request.IsAuthenticated) 
                        { @Html.Raw("
                            &nbsp; 
                            &nbsp; 
                            <a href="/">Upload</a> 
                            &nbsp; 
                            &nbsp; 
                            <a href="/logout" onclick="return confirm('Are you sure you want to delete this image?');">Logout</a> ")
                        } 
                    </div> 
0 голосов
/ 23 декабря 2013

nbsp означает неразрывный пробел.Он используется в HTML для вставки пробелов в середине.Поскольку вы находитесь в середине кода бритвы, компилятор не знает, когда вы используете HTML-код, сразу без директивы.Так как это даст ошибку компиляции.Это больше похоже на директивы препроцессора в c.(если вы знаете #include).Здесь вы просто должны использовать.Правильный код будет выглядеть следующим образом.

  <div>
<a href="/">Home</a>&nbsp;&nbsp; 
<a href="/">List</a>
@if (Request.IsAuthenticated)
{
    <text>
    &nbsp;
    &nbsp;
    </text>
    <a href="/">Upload</a>
    <text>
    &nbsp;
    &nbsp;
    </text>
    <a href="/logout" onclick="return confirm('Are you sure you want to delete this image?');">Logout</a>
}
  </div>
...