Tag: razor

ASP.Net MVC3 – 将剃刀标记作为参数传递

我有一个名为EditableArea的帮助器,它为用户提供了一个运行时可编辑的div (通过JS)。 EditableArea帮助程序检查数据库中是否存在具有指定ID的可编辑区域(与MVC的Area无关),如果是,则呈现该区域的HTML,否则它将显示指定为辅助程序的参数的默认标记: @Html.EditableArea(someId, “Click to edit contents”) 一切正常,但我想更改它,以便默认标记不是作为字符串指定,而是在剃刀语法中,如下所示: @using (Html.EditableArea(someId)) { Click to edit contents } 或类似的东西,比如@section在MVC3中的工作方式。 我怎样才能做到这一点? 我可以创建一个IDisposable ,它的Dispose关闭了TagBuilder等,但即使帮助器找到一个带ID的区域,我也无法避免渲染内部Razor标记(我可以清除Dispose()中的渲染内容但是里面的代码{}仍会运行,我想跳过)。 如果我不使用using是否有其他方法将剃刀块传递给帮助器,帮助器实际可能会或可能不会实现?

安装AspNet5RC1后,无法再在任何以前/新的MVC项目中打开cshtml文件

安装AspNet5.ENU.RC1后,任何以前或新的MVC项目都会抛出一个 操作无法完成。 指针无效 打开剃刀页面时出错( .cshtml )。 其他文件(如类库和配置文件)按预期打开。 我重新安装VS之前的任何建议?

创建自定义Html Helper:MyHelperFor

我想创建一个可以像使用一样的帮助器 @Html.MyHelperFor(m => m.Name) 这应该返回例如 如果它是@Html.MyHelperFor(m => m.MailID)这应该返回 我想,我应该能够在helper方法中访问Property名称来生成这种类型的帮助器。 我怎样才能做到这一点?

asp.net mvc – 包含元关键字和描述等SEO信息的策略

我想知道什么,如果有一个,是在ASP.NET MVC(我正在使用v3 RC)视图中包含SEO内容(如元描述和关键字)的最佳实践。 我最初的计划是创建一个动作filter,全局应用于动作,从数据存储中提取相关数据并将其作为viewdata传递给视图。 我的问题是:1)您是否预见到这种方法有任何问题? 2)还有更合适的方法吗? 3)在这里使用什么是合适的数据存储 – 我应该从数据库中提取(或者如果数据可用则缓存),使用资源文件,配置文件等? 提前致谢, J.P

由于不区分大小写的URL和默认值,我如何避免ASP.NET MVC中的重复内容?

编辑 :现在我需要真正解决这个问题,我做了一些调查,并想出了一些减少重复内容的东西。 我在我的博客上发布了详细的代码示例: 使用ASP.NET MVC减少重复内容 第一篇文章 – 如果我标记错误或标记错误,请轻松一下:P 在Microsoft的新ASP.NET MVC框架中,似乎有两件事可能导致您的内容在多个URL上提供(Google会惩罚这些内容并导致您的PageRank在其中分割): 不区分大小写的URL 默认url 您可以设置默认控制器/操作以满足对域根目录的请求。 假设我们选择HomeController / Index。 我们最终提供以下提供相同内容的url: mydomain.com/ mydomain.com/Home/Index 现在,如果人们开始链接到这两者,那么PageRank将被拆分。 谷歌也会认为它是重复的内容,并惩罚其中一个内容,以避免其结果重复。 除此之外,URL不区分大小写,因此我们实际上也为这些URL获取了相同的内容: mydomain.com/Home/Index mydomain.com/home/index mydomain.com/Home/index mydomain.com/home/Index (列表还在继续) 所以,问题是……我如何避免这些处罚? 我想要: 所有将默认操作的请求重定向(301状态)到同一个URL 所有URL都区分大小写 可能?

ASP.NET MVC Razor部分和部分

我是ASP.NET MVC和Razor的新手。 我们一直在修改和开发基于现有代码。 因此,有很多重复(呃!)。 所以我开始查看部分页面并了解章节。 我按照这些教程,但我仍然有点困惑。 ASP.NET MVC 3:使用Razor进行布局和部分 在ASP.NET MVC中使用共享布局的各种方法 具有默认内容的可选剃刀部分 剃刀,嵌套布局和重新定义的部分 我已经能够在其中创建带有部分的部分。 我的问题是: 虽然一个部分将始终根据用户选择而改变,但我可能不想吹走内容部分。 我可能只想根据用户选择的子菜单项添加新选项卡。 计划是有一个包含_Header的_Layout和SideBar的一个Section (子菜单)。 根据用户在_Header中的选择,子菜单选项列表将在SideBar中更改, 内容将是一个容器,可以在选择主页按钮时包含网格 ,或者它可以包含其他按钮的选项卡视图。 问题 假设用户从_Header中选择Billing ,然后从左侧的Sub Menu中选择两个项目; 在“内容”部分中,应显示两个选项卡(一个用于子菜单中选择的每个项目)。 然后,如果用户从_Header中选择Reports , SideBar应该更改为显示Reports的相应子菜单项,但我不希望Billing的两个选项卡被吹走。 相反,我想为用户从Reports子菜单中选择的每个项目添加其他选项卡。 下面是演示中的代码,它显示了我如何将部分页面代码放在Sections中。 显然我仍然对我应该采取的方法感到困惑,以完成我需要的布局。 _Layout.cshtml @ViewBag.Title @Styles.Render(“~/Content/css”) @Scripts.Render(“~/bundles/modernizr”) @Scripts.Render(“~/Scripts/jquery-1.10.2.min.js”) My Site Header @if (IsSectionDefined(“SideBar”)) { @RenderSection(“SideBar”) } @RenderBody() Site Footer – © Santa Clause Index.cshtml @{ […]

在asp.net mvc 4 razor中访问Custom Html Helpers中的属性

我在ASP.NET MVC 4 razor视图引擎C#中创建了HtmlHelper。 我可以将视图模型属性传递给我的帮助程序类吗? 例如,我有财产 [Required] [Display(Name = “Your Lastname”)] public string Lastname { get; set; } 我可以将此属性传递给我的帮助程序,如@Html.Example(model => model.Lastname) ,然后在帮助程序中获取数据注释(如果需要此字段,则显示名称等等)?

如何在IPagedlist模型中添加“模型”下拉列表?

我有一个页面来显示html表中的每个日志( 消息,时间,类型,customerId,Name )。 由于日志很大,我在Razor MVC中使用了一个IPagedList,这非常有效。 我目前有2个搜索框(对于管理员)和1个成员。 您可以在哪里搜索消息和客户ID。 现在问题是我不希望用户只有一个文本框,你只能输入一个数字(例如你输入客户ID 2并获得客户T) – 但我想要一个所有的下拉列表当前客户名称连接到客户ID。 我在我使用的另一个页面中有这个function,但它只能工作,因为我在另一个页面返回模型,因为日志页面返回“IPagedListModel”而不是“模型”我不能使用此解决方案。 我如何使此解决方案也适用于我的日志页面? HTML代码 @:@Html.DropDownListFor(m => m.SelectedCustomer, Model.CustomerList) 模型 using System; using System.Linq; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using System.Data.Entity; using System.Collections.Generic; using PagedList; using System.Web.Mvc; namespace ASDMVC.Models { [Table(“Log”)] public class LogModel { [Key] public long id { get; set; } public string message { […]

将C#字符串转换为JavaScript字符串

有没有人知道在Asp.net中将C#字符串转换为JavaScript字符串的方法。 我的代码如下所示: @{string thing = “Cats”;} var thing = String(@thing);

Display属性中的ShortName(DataAnnotations)

Name属性正常工作,但ShortName不起作用。 [Display(Name = “Date of the transfer the task”, ShortName = “Trans date”)] public DateTime TransferDate { get; set; } 即使我删除了Name属性,也会忽略ShortName(列标题中会显示“TransferDate”)。 在视图中我这样做: @Html.DisplayNameFor(model => model.TransferDate)