Tag: asp.net mvc 4

如何在MVC路由中启用特殊字符?

我正在使用asp.net MVC 4。 这些是我的路线: routes.MapRoute( name: “Default”, url: “{controller}/{action}/{id}” ); 我当前的控制器正确响应以下请求: http://localhost:2020/PrivacyUrls/Details/ct14524 如何validation这些url? http://localhost:2020/PrivacyUrls/Details/*ct14524 http://localhost:2020/PrivacyUrls/Details/&ct14524 现在返回404。 从客户端(*)检测到潜在危险的Request.Path值。 从客户端(&)检测到潜在危险的Request.Path值。 我想添加这条路线,但它没有帮助: routes.MapRoute( “PivacyUrl/Details”, “PrivacyUrls/Details/{*ctid}”,// URL with parameters new { controller = “PrivacyUrls”, action = “Details” } );

MVC Action未在控制器中触发

我在视图中创建了一个模型,一些字段和一个按钮: 视图: @model IEnumerable @foreach (var item in Model) { @Html.TextBoxFor(modelItem => modelItem.name) } 控制器: public ActionResult Index() { var model = selectModels(); return View(model); } [HttpPost] public ActionResult Save(IEnumerable model) { return View(); } 问题是: 为什么不解雇“保存”动作?

Mvc Asp排序项目

我在我的应用程序中使用PagedList.MVC进行分页。 这工作正常。 分页工作正常,OrderBy下拉列表工作正常。 当我从下拉列表中选择值时,它会给出所需的排序结果。 我的意思是,如果我选择AZ然后它按升序排序项目,但当我点击第二页或下一页时,它不排序任何项目,url变为这样 HTTP://本地主机:41213 /首页/产品页= 2的pageSize = 6 而且我怎样才能使这个pageSize = 6成为动态? 我想把它放在像{5,10,15,20}这样的下拉列表中,当用户选择一个值时,它应该显示所选择的项目数。 调节器 [HttpGet] public ActionResult Products(int? OrderBy, int page=1, int pageSize=6) { private Shopping db = new Shopping(); switch (OrderBy) { case 1: List listProductsasc = db.Products.OrderBy(p => p.Name).ToList(); PagedList modelasc = new PagedList(listProductsasc, page, pageSize); return View(modelasc); case 2: List listProductsdesc […]

重新连接到asp.net MVC4应用程序中的Servicestack会话

我有一个asp.net mvc4 Web应用程序,它使用C#编写的API消耗数据数据,并在Apache / mod_mono的Linux机器上托管 客户端应用程序是用C#/ asp.net编写的 – 它运行在不同的Web服务器上,也就是Linux / Apache / mod_mono。 我不确定这些细节在这种情况下是否重要,但我认为任何背景都可能有所帮助。 导致这个问题的问题: AppHostBase实例未设置 – 帮助我更加了解这一切是如何组合在一起的。 我相信我现在应该问的正确问题是: 一旦我在servicestack中创建会话(在API服务器上),我该如何正确地重新连接它? 根据之前问题的答案,我在客户端应用程序的auth控制器中使用了这段代码: var authService = AppHostBase.Resolve(); authService.RequestContext = System.Web.HttpContext.Current.ToRequestContext(); var AuthResponse = authService.Authenticate(new Auth { provider = “credentials”, UserName = user.user_id, Password = user.password, RememberMe = true }); 这将返回一个ResolutionException: 无法解析ServiceStack.ServiceInterface.Auth.AuthService类型所需的依赖项。 在让客户端在asp.net应用程序中工作时,我可能会缺少一些简单的东西吗? 如果问题太模糊,我会道歉,并乐意提供更多信息。 更新: 这是AuthController – 请原谅这个混乱,自从我上一篇文章以来,我一直在尝试一些事情: […]

第一个html助手生成客户端validation属性,而第二个没有

假设我有这个模型: public class Person { public bool IsApproved { get; set; } } 并且这个代码,我试图用check类型呈现input : @Html.CheckBoxFor(x => x.IsApproved) @Html.CheckBox(“IsApproved”) 但是,结果是不同的: // CheckBoxFor result // CheckBox result 如何以及为什么 ,第一个生成客户端validation的属性,而另一个没有? 更新: 交换@Html.CheckBoxFor和@Html.CheckBox的顺序后,标记元素的顺序没有改变。

如何缓存数据库表以防止在Asp.net C#mvc中进行许多数据库查询

我使用Asp.net mvc 4(c#)构建自己的cms,我想缓存一些数据库数据,如:本地化,搜索类别(它是长尾,每个类别都有自己的子和子子类别),等等.. 一直查询数据库会有点过分,因为每个页面请求可能超过30-100个查询,但用户很少更新这些数据库 那么最好的方法(性能和便利性)是什么? 我知道如何使用动作的OutputCache,但这不是我在这种情况下所需要的,它是缓存html,但我需要的是,例如,我自己的助手@html.Localization(“Newsletter.Tite”)将采取语言的价值,或与数据交互的任何其他帮助者等。 我认为(不是很确定)我需要缓存我想要的数据,只有在第一次调用应用程序时,然后使用缓存位置,但我没有任何经验。

使用entity framework更新实体,同时忽略某些属性

我正在使用asp.net mvc 4.我必须使用编辑方法更新我的持久性存储,但我想忽略一些列。 我在这里找到了一些答案,但他们并没有为我工作(我想)。 这是我的方法: [HttpPost] public ActionResult Edit(Candidat candidat) { ProcRecDB _db = new ProcRecDB(); // from DbContext if (ModelState.IsValid) { _db.Entry(candidat).State = EntityState.Modified; _db.SaveChanges(); return RedirectToAction(“Index”); } return View(candidat); } 候选人模型有10个属性; 我怎么会忽略其中的一些?

web api put识别查询字符串但不识别正文

当我将用户作为查询字符串传递(使用$ http中的参数)并设置web api方法在uri中查找它们时,一切都很好。 但是当我按照下面的方式传递它们时,用户显示为null。 我在这里失踪了什么? 角度函数 scope.saveChanges = function () { // create array of user id’s var users = []; angular.forEach(scope.usersInRole, function (v, k) { users.push(v.Key); }); var data = { user: users }; var token = angular.element(“input[name=’__RequestVerificationToken’]”).val(); // put changes on server http({ url: config.root + ‘api/Roles/’ + scope.selectedRole + ‘/Users’, method: ‘PUT’, […]

非顺序集合绑定

将MVC视图中动态创建的元素集合绑定到MVC 4中的集合的最佳方法是什么。我知道以前的版本要求元素如下所示: 但是当你动态添加新元素并删除它们时,事情很快就会失序。 MVC 4是否添加了绑定到非顺序集合的方法?

C#将文件保存到服务器而不是本地文件夹

该项目是基于MVC 4 C#的Web应用程序。 我目前正在本地工作,并希望能够以调试模式将文件上传到我本地运行的应用程序,并将文件保存到Web服务器而不是我的本地文件夹。 目前我们正在使用: if (!System.IO.File.Exists(Server.MapPath(PicturePath))) { file.SaveAs(Server.MapPath(PicturePath)); } 我们如何利用此代码直接保存到Web服务器。 这有可能吗? 现在文件被保存到我的本地路径,路径存储在数据库中,然后我们必须手动将文件上传到网络服务器。