html - 如何将 "<%: x > y ? a : b %>"之类的 MVC 2.0 Html 代码替换为 MVC 3.0 cshtml Razor 代码?

标签 html asp.net-mvc asp.net-mvc-3 asp.net-mvc-2 razor

我有一段 MVC 2.0 html 代码如下,我想用 MVC 3.0 Razor 代码替换它,但我无法使用像 MVC 2.0 这样的一行代码让它工作。

<legend>&nbsp;Please add review for product :<%: Model.Product.ProductName.Length > 25 ? (string)Model.Product.ProductName.Substring(0, 25) + "..." : (string)Model.Product.ProductName %>&nbsp;<i style="color:Red">(&nbsp;<%: (string)Model.Product.Category.CategoryName %>&nbsp;)</i></legend>

我能让它工作的唯一方法如下所示,但它看起来并不整洁。我不喜欢它,任何人都可以给我一行在 MVC 3.0 Razor 中运行的代码,将不胜感激!!!

<legend>&nbsp;Please add review for product :
    <b>
        @{
            if(Model.Review.Product.ProductName.Length > 25)
            {
                @Model.Review.Product.ProductName.Substring(0, 25); @:...
            }
            else
            {
                @Model.Review.Product.ProductName;
            }
         }
    </b>
    &nbsp;<i style="color:Red">(&nbsp;@Model.Review.Product.Category.CategoryName&nbsp;)</i>&nbsp;</legend>

最佳答案

这应该可行

<p>
   @(Model.Review.Product.ProductName.Length>25 ? 
            @Html.Raw(Model.Review.Product.ProductName.Substring(0,6)+" ..")
                                  :@Html.Raw(Model.Review.Product.ProductName))
</p>

关于html - 如何将 "<%: x > y ? a : b %>"之类的 MVC 2.0 Html 代码替换为 MVC 3.0 cshtml Razor 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13906750/

相关文章:

ajax - 在 MVC 3 中为 AJAX 请求反序列化字典时出现问题(一种开箱即用的经典 ASP.NET Webforms 方法)

html - 子菜单悬停在 Internet Explorer 上不起作用

javascript - 添加许多列后数据表没有响应

c# - 无法在 MVC 5 中为 Html.DropDownList 设置默认值

c# - MVC ActionLink 从当前 url 添加所有(可选)参数

ajax - 使用带有下拉列表 mvc3 的 ajax

c++ - 托管 html/css/js UI 的最轻量级方式?

javascript - Kendo 网格行在插入时重复

asp.net-mvc - 这些 Assets 不是 BundleTransformer 中的样式表错误

asp.net-mvc-3 - SQL CE 部署 - AppHarbor - 无法加载 SQL Server Compact 的 native 组件