标签: razor-2

MVC4 ViewData.TemplateInfo.HtmlFieldPrefix生成一个额外的点

我正在尝试输入正确的名称,以便我的视图模型上的对象集合可以被绑定.

   @{ViewData.TemplateInfo.HtmlFieldPrefix = listName;}
            @Html.EditorFor(m => m, "DoubleTemplate", new { 
                Name = listName,
                Index = i,
                Switcher = (YearOfProgram >= i +1)
            })
Run Code Online (Sandbox Code Playgroud)

正如您在此处看到的,我将"listName"作为模板的前缀传递.listName ="MyItems"的值

这是我的模板:

@model Web.Models.ListElement

@if (ViewData["Switcher"] != null)
{

    var IsVisible = (bool)ViewData["Switcher"];
    var index = (int)ViewData["Index"];
    var thisName = (string)ViewData["Name"] + "[" + index + "].Value";
    var thisId = (string)ViewData["Name"] + "_" + index + "__Value";
    if (IsVisible)
    {
        @*<input type="text" value="@Model.Value" name="@thisName" id ="@thisId" class="cell@(index + 1)"/>*@
        @Html.TextBoxFor(m => m.Value, new { @class ="cell" …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc-4 razor-2

7
推荐指数
2
解决办法
1万
查看次数

Html.DropDownList默认选中的项目

我在ForEach循环中显示dropDownLists列表.

这是代码

@foreach (var task in Model.TaskList)
    {
        <tr>
            <td>@Html.DropDownList("ModuleID", new SelectList(Model.ModuleList, "ModuleID", "Ordre"))
            </td>
        </tr>
    }
Run Code Online (Sandbox Code Playgroud)

我希望默认情况下选择Module每个Task.DropDownList如果我只是将dropDownList绑定到视图模型,这可以很容易地完成,但事实并非如此.

有任何想法吗 ?

html-select razor razor-2

6
推荐指数
1
解决办法
2万
查看次数

我的Helpers.vbhtml文件导致"类型'ASP.global_asax'未定义"

我创建了App_Code在我的MVC项目中调用的ASP.NET特殊文件夹.我添加了一个新文件Helpers.vbhtml,其中包含重复使用的剃刀代码片段.

文件夹结构

Helpers.vbhtml

@Helper GetTime()
    @DateTime.Now
End Helper
Run Code Online (Sandbox Code Playgroud)

但这会导致错误Type 'ASP.global_asax' is not defined.(x2)

错误

似乎没有任何影响 - 应用程序仍然编译并运行.这个错误是什么意思?

vb.net asp.net-mvc-4 razor-2

6
推荐指数
1
解决办法
4184
查看次数

ASP.NET MVC 4 Razor视图无法识别Dropdownlistfor HTML Helper

我正在尝试将一个下拉列表添加到强类型剃刀视图中.ASP.Net MVC 4.0,Razor View引擎版本2.0.0.0

@using System;
@model SampleApp.Models.ServiceRequestModel

@{
  ViewBag.Title = "ServiceRequest";
}

@Html.DropDownListFor(m=>m.CategoryID, Model.Categories)
Run Code Online (Sandbox Code Playgroud)

模型如下:

public class ServiceRequestModel
{
    public int ID { get; set; }
    public int CategoryID { get; set; }

    public SelectList Category { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

它始终在CSHTML文件中的intellisense中显示错误:

System.Web.WebPages.Html.HtmlHelper'不包含'DropDownListFor'的定义,并且没有扩展方法'DropDownListFor'接受类型'System.Web.WebPages.Html.HtmlHelper'的第一个参数可以找到(你错过了吗?) using指令或程序集引用?)

它也给出了以下错误:

错误3当前上下文中不存在名称"model"

我检查了View文件夹中的web.config:

<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
  <namespaces>
    <add namespace="System.Web.Mvc" />
    <add namespace="System.Web.Mvc.Ajax" />
    <add namespace="System.Web.Mvc.Html" />
    <add namespace="System.Web.Routing" />
  </namespaces>
</pages>
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc-4 razor-2

5
推荐指数
1
解决办法
6221
查看次数

我怎样才能隔离Razor Views?

有没有办法向人们公开Razor语法和(自定义)助手,但是说...不允许他们创建代码块,或者只是限制他们使用助手并且不给他们执行纯粹的权力视图中的C#代码?

欢迎任何有关类似解决方案的想法和指示!

更新: //我想让用户有权编写自己的HTML并只能访问html助手列表.主要是默认的和我创建的.

例如,我不希望他们能够在@{ //code }块内执行代码,而且没有using@model(不确定这个)只能访问@Html.* @if else for foreach

或者更好的是,让他们只访问特定的命名空间(这只是一个想法)

更新://经过一些测试后,我发现RazorEngine与我正在尝试做的一样接近:在隔离环境中运行视图并添加对特定命名空间的访问.

c# isolation asp.net-mvc-4 razor-2

5
推荐指数
1
解决办法
769
查看次数

在不使用MVC的情况下在WebPages中渲染部分

我正在使用Razor和WebPages但没有MVC.我喜欢这种简单性,所以我对此使用MVC并不感兴趣.但是我希望能够将部分内容呈现在我的页面中.像菜单,页脚等

使用MVC,你可以这样:@ {Html.RenderPartial("Footer",Model);}

我想做类似的事情:@ {Html.RenderPartial("footer.cshtml"); }

我怎样才能实现我的目标?

asp.net razor razor-2

5
推荐指数
1
解决办法
1815
查看次数

Razor模板编辑器不喜欢我的Knockout attr绑定语法

我有一个Knockout attr绑定工作得非常好:

<a data-bind="attr: { href: 'Action?destination=' + '@Model.Property' + '&entityId=' + Id }">Select</a>
Run Code Online (Sandbox Code Playgroud)

但是,一旦将任何模型属性插入到href字符串中,Visual Studio中的语法突出显示就会抛出"未终止字符串常量"错误.

我试过'@()'和'@:',但似乎没有什么能让编辑高兴.

asp.net-mvc-4 knockout.js razor-2

5
推荐指数
1
解决办法
619
查看次数

从nopCommerce插件扩展Razor Partial View

我正在开发一个nopCommerce插件项目.nopCommerce使用Razor语法构建在MVC4上.

我需要从我正在构建的插件/扩展中扩展一个局部视图.但是,我无法想到如何在技术上做到这一点.

任何想法,如何从nopCommerce插件/扩展中扩展/替换部分视图之一.

----更新----

我需要使用没有控制器的插件扩展局部视图(具体为_productbox.cshtml).

我真的不需要覆盖控制器及其操作方法,因为我的插件不需要它.我正在对部分视图模板的标记进行一些更改,其余的事情都是通过我的javascript完成的.所以基本上没有必要扩展控制器或动作方法.

任何想法都非常感谢.

你能告诉我吗?感谢您的答复.

提前致谢.

asp.net-mvc nopcommerce asp.net-mvc-3 asp.net-mvc-4 razor-2

5
推荐指数
1
解决办法
1100
查看次数

知道 RazorEngine 中的特定模板是否已经编译

是否可以知道特定模板是否已使用 RazorEngine 编译?基本上,如果你打电话:

Razor.Parse("Hello there @Model.Name", model, "hello-world");
Run Code Online (Sandbox Code Playgroud)

这将使用键“hello-world”编译模板。第一次这可能需要几毫秒,但由于缓存,第二次几乎是即时的。是否可以知道模板是否已经编译?就像是:

var isCompiled = Razor.IsCompiled("Hello there @Model.Name", "hello-world");
Run Code Online (Sandbox Code Playgroud)

c# razor razor-2

5
推荐指数
1
解决办法
2582
查看次数

如何在cshtml中使用下拉列表

如何在cshtml中使用下拉列表?我正在使用下面的代码,现在它看起来像一般的 HTML,但问题是不应用引导样式。

<div class="col-md-10">

            @{
List<SelectListItem> listItems = new List<SelectListItem>();
listItems.Add(new SelectListItem
     {
         Text = "AtlantaPort",
         Value = "AtlantaPort"
     });
listItems.Add(new SelectListItem
     {
         Text = "NewJersyTerminal",
         Value = "NewJersyTerminal",
         Selected = true
     });
listItems.Add(new SelectListItem
     {
         Text = "AWS",
         Value = "AWS"
     });
            }

            @Html.DropDownListFor(model => model.PortORterminal, listItems, "AtlantaPort", new { htmlAttributes = new { @class = "form-control", } })                        )
        </div>
Run Code Online (Sandbox Code Playgroud)

提前致谢

asp.net-mvc entity-framework razor-2

5
推荐指数
1
解决办法
5万
查看次数