8

我正在使用 Visual Studio 2010 专业版在 ASP.NET MVC3 框架中开发应用程序。

我遇到了一种情况,我需要一个文字空格字符,通常通过 在 HTML 中添加(类似的东西)来完成。

但是,程序给出了运行时错误。

我该如何克服呢?

代码:

<div class="week">
    @for (int i = 0; i < 7; i++)
    {
        <div class="day">
            @weekStartDay.ToString().Substring(0, 3)
        </div>            
&nbsp;
       weekStartDay = (DayOfWeek)(((int)weekStartDay + 1) % 7);
    }
</div>

错误:

c:***\Documents\Visual Studio 2010\Projects\MvcApplication2\MvcApplication2\Views\Home\Calendar.cshtml(22): error CS0201: 只有赋值、调用、递增、递减和新对象表达式可以用作陈述

4

4 回答 4

27

将您的代码更改为

<div class="week">
    @for (int i = 0; i < 7; i++)
    {
        <div class="day">
            @weekStartDay.ToString().Substring(0, 3)
        </div>            
       @:&nbsp;
       weekStartDay = (DayOfWeek)(((int)weekStartDay + 1) % 7);
    }
</div>

@: 告诉 Razor 视图引擎&nbsp;是纯文本

于 2012-12-10T07:26:08.877 回答
3

如果您在 Visual Studio 2012 中查看此代码,您将看到完全相同的错误消息。带有下划线,工具提示显示此消息。

问题是您在代码块内:@{ }. 如果要输出纯文本,则必须将其包装在 HTML 元素中,如下所示:

<span>&nbsp;</span>

或者你必须使用

@:&nbsp;
于 2012-12-10T07:27:42.060 回答
2

只需在   之前使用 add @:

于 2015-11-16T15:08:24.060 回答
0

对于下拉列表中的每个列表项,您必须将列表项值替换为 .Replace(" ", "\u00A0")

例如:


在你的控制器中

 var Listval =(from u in yourtablename select u.YourColumnName.Replace(" ", "\u00A0")).Distinct().ToList();
  ViewBag.DDlVals= new SelectList(Listval);

在您的查看页面中

@Html.DropDownListFor(model => model.YourColumnName, (SelectList)ViewBag.DDlVals, "--Select--", new { @class = "form-control" })
于 2018-05-30T10:48:43.147 回答