Tag: asp.net mvc 4

Html.DropDownList选择的值不起作用(使用带有IEnumberable 的构造函数)

我有一个问题,其中所选值不适用于Html.DropDownList帮助器方法。 见下文: 这是我的控制器: public ActionResult Edit(int id = 0) { NewsEvent item = GetItem(id); ViewBag.NewsItemId = new SelectList(ViewBag.NewsItemId.Items, “Id”, “Name”, item.NewsItemId); return View(item); } 这是我的观点: @Html.DropDownList(“NewsItemId”,ViewBag.NewsItemId as SelectList, string.Empty, new { @class = “form-control” }) 但是,当我在视图中尝试以下操作时,它可以工作: @Html.DropDownList(“NewsItemId”, string.Empty) 以下也可以,但由于字段名称与模型不匹配,因此无法正确发布。 @Html.DropDownList(“NewsItemIdDrop”,ViewBag.NewsItemId as SelectList, string.Empty, new { @class = “form-control” }) 我需要使用第一个选项的原因是我可以将class属性添加到控件。 有人能帮助我理解我做错了什么吗?

带有html属性的html.BeginForm asp.net mvc4

我有Html.BeginForm编辑动作。 如何添加HTML属性? 我只知道一种方式: @using (Html.BeginForm(“Edit”, “Clients”, FormMethod.Post, new { @class=”example”})) { } 但如果我使用这种方法,我无法传递当前的ID 是否可以在不修改操作URL的情况下将HTML属性添加到表单中?

在启用了LowercaseUrls的Route参数中保留Case

我正在使用routes.LowercaseUrls = true; 在我的MVC 4应用程序中工作得很好。 但是,参数也会变低,所以如果我有一个像这样的路线 routes.MapRoute( name: “MyController”, url: “foo/{hash}/{action}”, defaults: new { controller = “MyController”, action = “Details” } ); 生成的链接 @Html.ActionLink(“my link”, “Details”, new { hash=ViewBag.MyHash }) 也会将URL的{hash} – 部分小写,例如,如果ViewBag.MyHash = “aX3F5U”则生成的链接将是/foo/ax3f5u而不是/foo/aX3F5U 有没有办法强制MVC只小写控制器和动作部分? 对于旧版本的MVC,前进的方法似乎是实现Route的自定义子类,但是我不知道如何/在哪里实例化它,因为路由构造函数的签名与MapRoute和我是完全不同的希望有一个更简单的方法。

NerdDinner MVC4版本 – 为什么他们删除了存储库类?

我一直在查看NerdDinner教程。 我正在阅读使用LINQ to SQL和MVC2的原始PDF教程( http://aspnetmvcbook.s3.amazonaws.com/aspnetmvc-nerdinner_v1.pdf )。 在该教程中,他们实现数据上下文,然后实现存储库类以与数据实体交互。 我看到项目已更新为使用MVC4和entity framework( http://nerddinner.codeplex.com ),因此我浏览了该代码以查看它们实现了哪些更改。 他们将项目更改为代码优先,每个数据实体都有单独的模型类。 我惊讶地发现他们完全摆脱了存储库。 我认为通过存储库模式抽象与数据库的通信通常是一种很好的做法…我知道教程通常会为了简洁而做出糟糕的设计选择,但我想知道为什么已经实现了存储库的教程做出了决定从这个版本中省略它们。 MVC4或EF中是否存在使存储库过时/冗余的问题?

使用MS Bundling清空捆绑包

我正在使用asp.net mvc4以及MS使用System.Web.Optimization库(1.1.0)和使用dotless的自定义LessTransform提供的内置捆绑和缩小。 该站点托管在IIS 7中。我的问题是网站间歇性地捆绑是空的,导致网站加载所有奇怪。 http://site/Content/surveycss? 什么可能导致这个? UPDATE 我读过如果较少的编译器遇到错误,则可能导致空包。 我已经测试了较少的错误,没有。 我发现捆绑包配置为使用Content目录的方式可能存在问题,因此我将其更改为: bundles.Add(new StyleBundle(“~/Content/bootstrap”) .Include(…)); 至: bundles.Add(new StyleBundle(“~/cssbundles/bootstrap”) .Include(…)); 重新部署应用程序后,它似乎解决了这个问题。 然而,它再次发生。 该设置是一个负载平衡器,具有2个IIS服务器。 今天,我登录到服务器1并通过IIS浏览了该网站,它正在加载正常。 登录到服务器2并通过IIS浏览站点会产生捆绑问题。 更新2 测试资源可能正在使用的想法。 我尝试删除导致该问题的捆绑包中的较少文件。 成功删除的文件越少。 恢复.less文件后,直接浏览到服务器时问题就消失了。 更新3 这个问题刚刚开始在dev服务器上出现,该服务器没有使用不使用无点的bundle进行负载平衡 bundles.Add(new StyleBundle(“~/cssbundles/bootstrap”) .Include(“~/Content/bootstrap/bootstrap.css”)); 这是因为nuget包升级而且文件不再位于引用的位置。 我仔细检查了所有其他捆绑包,以确保文件仍然存在于它们被引用的位置,并且它们确实存在,所以这不是问题。 更新4 添加了无点配置的日志记录并收到此消息: 06-12-2013 16:08:07.814,10.183.130.143,demo.app.com,/cssbundles/bundlecss?v=WN4weCPcGs3GJ_Hgsm2B7qNotYNgbrMS6xwEt8SWK6M1,user@email.com,” directive block with unrecognised format on line 1: []: /beginning of file [1]: @v: WN4weCPcGs3GJ_Hgsm2B7qNotYNgbrMS6xwEt8SWK6M1; ^ [2]: […]

事件消息:发生了未处理的访问exception(IIS 7.5,无法加载网站)

我将Nuget源代码部署到我公司的Web服务器,但是当导航到URL时,我收到以下错误(从服务器上的事件查看器中提取): Event code: 4011 Event message: An unhandled access exception has occurred. Event time: 11/6/2013 9:02:54 AM Event time (UTC): 11/6/2013 3:02:54 PM Event ID: 2f5d6f7e594e47259b6dc050f82fc57d Event sequence: 2 Event occurrence: 1 Event detail code: 0 Application information: Application domain: /LM/W3SVC/2/ROOT/Nuget-3-130282237713215393 Trust level: Full Application Virtual Path: /Nuget Application Path: E:\omitted\omitted\Nuget\ Machine name: SERVERNAME Process […]

用于将Windows应用程序连接到MVC 4的Web服务或Web API?

在搜索了我应该使用的一整天后,我不确定哪种选择最适合我的需求,所以我希望有经验的人可以帮助我。 我有一个winforms应用程序( c# )和一个ASP.NET MVC 4 Web应用程序( c# )。 我想连接这些,目标是从我在MVC 4项目中使用的数据库发送和接收数据,但是从windows窗体应用程序中。 我从Windows窗体应用程序发送到数据库的数据然后由MVC 4 Web应用程序使用。 我是Web服务/ Web Api的新手,所以我无法真正决定哪种选择最好。 任何帮助将非常感激..

在reflection中循环模型属性,然后使用Html帮助程序显示。 如何获得具体房产?

我们有一个MVC4 ASP.Net站点,我们试图使用reflection来循环模型的属性,并使用Html助手显示名称/值/和其他信息。 我们有一个自定义的Html Helper,我们从下面的方法传递参数。 @foreach (PropertyInfo prop in Model.GetType().GetProperties()) { Html.LabelFor( ?? Any ideas ?? ) @SuperEditorFor.ReflectiveEditorFor(prop, Model) @Html.ValidationMessageFor(model => model.GetType().GetProperty(prop.Name)) } 我们已经尝试在ValidationMessageFor中输入“property”(quote),但正如我们所怀疑的那样,它需要实际的具体属性,而不是reflection的propertyInfo对象。 有谁知道这是否可能? 有没有人试过这样做呢?

asp.net mvc 4 javascript里面的razor block抛出错误

这是我的剃刀代码,它会抛出错误: @section script { $(document).ready(function () { @if (TempData[“Message”] != null) { showNotification(“‘” + TempData[“Message”].ToString() + “‘”); } }); } 它说showNotification不存在。 它认为这是一个C#代码,它是一个javascript函数。 有人可以告诉我如何解决这个错误? 谢谢!

MVC4如何动态地将行项添加到EditorFor字段?

我有一个视图模型女巫包含迭代项目。 我通过EditorFor()方法将它们放在我的视图中。 视图: @model Models.MyModel @using (Html.BeginForm(@Model.Action, @Model.Controller)) { @Html.EditorFor(m => m.Terms) } 模型: public class MyModel { public IEnumerable Terms { get; set; } } EditorTemplates \ Term.cshtml: @model Models.Term @if (Model != null) { Term @Html.HiddenFor(model => model.TermID) @Html.LabelFor(model => model.Identifier) @Html.EditorFor(model => model.Identifier) @Html.ValidationMessageFor(model => model.Identifier) @Html.LabelFor(model => model.Description) @Html.EditorFor(model => model.Description) […]