Tag: asp.net mvc 3

带有一个必需参数和一个可选参数的ASP.NET MVC路由?

在过去一个月左右的时间里,我一直在研究一个大型MVC应用程序,但这是我第一次需要定义一个自定义路由处理程序,而且我遇到了一些问题。 基本上我有两个参数要通过。 第一个是必需的,第二个是可选的。 我在这里听到这个答案。 这是我的自定义路线: routes.MapRoute( “MyRoute”, “{controller}/{action}/{param1}/{param2}”, new { controller = “MyController”, action = “MyAction”, param1 = “”, param2 = “” // I have also tried “UrlParameter.Optional” here. } ); 我的动作方法签名: public ActionResult MyAction(string param1, string param2) 如果我尝试URL http://[myserver]/MyController/MyAction/Test1/Test2那么它就像我期望的那样工作,param1 =“Test1”和param2 =“Test2” 如果我尝试URL http://[myserver]/MyController/MyAction/Test1那么两个参数都为null。 希望有人可以告诉我这里我做错了什么,因为我迷路了。

如何在ASP.NET MVC应用程序中维护数据库连接?

我没有在Web应用程序中使用LINQ-to-SQL或Entity Framework位,并且目前一直在使用类似的东西(这是针对类项目): using System.Data; using System.Data.SqlClient; namespace StackOverflowClone.Models { public class Database { public static SqlConnection ActiveConnection { get; private set; } static Database() { ActiveConnection = new SqlConnection( “Data Source=********.database.windows.net;” + “Initial Catalog=EECS341;Uid=*****;Pwd=*******;” + “MultipleActiveResultSets=True;”); ActiveConnection.Open(); } } } 但是,这似乎会导致线程问题,因为静态初始化程序每个服务器进程运行一次,而不是每个请求运行一次。 框架是否提供了一种内置的方法来处理这个问题,还是我应该只有一个函数来咳嗽每次新建的数据库连接?

如果文件名为_ViewStart.cshtml,则Razor Layout不起作用

我有一个MVC3网络应用程序,我想开始使用整个Razor视图。 大多数网站都使用Site.Master正常工作,所以我将大部分网站打包成部分视图,并尝试添加具有相同内容的布局。 在阅读Scott Gu的博客后,我在~/Views目录中添加了一个名为_ViewStart.cshtml的文件,以便默认情况下应用它。 不幸的是,这给了我错误: The name ‘RenderBody’ does not exist in the current context 如果该文件名为_viewstart.cshtml 。 如果它被称为_layoutviewstart.cshtml它将工作但我必须直接在视图中引用它。 如果它被称为_billyviewstart.cshtml是有效的,但我必须再次在视图中直接引用它。

如何将span元素放入ActionLink MVC3中?

如何在ActionLink中放置span元素但不包含URL.ACTION? 这个: @Ajax.ActionLink(“LinkText”, “ControllerName”, new AjaxOptions { UpdateTargetId = “div”, InsertionMode = InsertionMode.Replace, HttpMethod = “GET”, LoadingElementId = “progress” }) 生成这个: LinkText 但我需要别的东西。 如何创建生成此输出的自定义MVC3 ActionLink方法: LinkText // this span generated inside

MVC 3中的byte 到文件类型

在我的MVC应用程序中,我最近配置了一个页面,允许上传任意文件类型(某些限制不适用于此问题)。 我将文件作为数据类型byte []存储在数据库中,存储的文件类型基于文件扩展名(请不要试图给我一个更好的选项来存储这些文件,我很清楚存储文件在数据库不是一个好习惯,但我们有一个约束,要求我们使用SQL Server持久保存这些文件。) 正如我所说,为了使这更糟糕,我将文件的byte []数组存储在数据库类型为text的列中。 这只是这样做,所以我不必担心varbinary类型的限制。 我想知道的是,当请求文件时,MVC将这些文件返回给具有指定文件扩展名的用户的最佳方法是什么? 我之前已经能够使用excel文件和AJAX调用我的控制器上的“GET”操作,但我想知道是否有更好的方法来执行此操作。 有什么建议? 示例:如果我有以下代码 string fileExtension = /*Some File Extension*/ byte[] data = MyDataContext.DocumentTable.First(p => p.DocumentUID == id); 然后,我如何使用最初保留的fileExtension以指定的文件格式将此数据返回给用户。 编辑我猜测FileResult将是实现这一目标的最简单方法之一。

如何使Fluent API配置与MVC客户端validation一起工作?

我更喜欢使用Fluent API配置到DataAnnotation,因为我想将模型与数据访问分开。 我在MVC中尝试过,Fluent API不能与客户端validation一起使用。 简而言之,有一种简单的方法可以使Fluent API与客户端validation一起工作,因为DataAnnotation可以做到吗?

RedirectToAction到不同的控制器而不更改URL

是否可以在不更改URL的情况下从一个控制器(A)操作重定向到另一个控制器(B)操作? 我尝试使用RedirectToAction但浏览器中的URL发生了变化

为编辑器添加样式

我正在尝试将一个Style应用于编辑器中,但是我无法使其工作; 我究竟做错了什么? @Html.EditorFor(model => model.ClienteNuevo) @Html.ValidationMessageFor(model => model.ClienteNuevo,”” ,new Dictionary { { “style”, “width:500px” } })

在MVC cshtml中每行显示三列

我目前所拥有的是下面的工作正常,但现在它在一个长列表中显示我的记录,我想要做的是每行显示三(3)条记录。 我尝试在标签上放置一个for循环,但它不起作用它只显示每个记录三(3)次的重复。 @foreach (var ClientItem in Model.Clients) { @Html.Hidden(“ClientID”, ClientItem.ClientID) @Html.Label(ClientItem.ClientName) } 请帮助我已经用完了想法,我也尝试过之前提出的存档

为什么剃刀不喜欢这个?

我有一个令人讨厌的大问题,我有一个观点: @{ if(ViewBag.Section == “Home”) { } else { } } 我收到编译错误: 代码块缺少结束“}”字符。 确保此块中的所有“{”字符都有匹配的“}”字符,并且没有任何“}”字符被解释为标记。 我如何有条件地写一个div? 它的基础是hack …