Tag: asp.net mvc

ASP.NET MVC 2问题 – Dot in Route

我正在消隐,需要一个快速的手。 谷歌让我失望了。 我正在努力用ASP.NET MVC替换WCF / REST入门套件。 我希望尽可能轻松地进行转换,因此我尝试创建一个匹配以下URL的路由: http://localhost/services/MyService.svc/UserInfo 我在Global.asax.cs中创建了路由: routes.MapRoute( “MyServiceDefault”, “services/MyService.svc/{action}/{id}”, new { controller = “MyService”, action = “UserInfo”, id = UrlParameter.Optional } ); 我很快就意识到这个请求甚至没有通过我的应用程序. 在URL的MyService.svc部分。 我错过了什么来强制请求传递到我的应用程序而不是由服务器作为静态资源处理? 更新 我忘了提到我还尝试将以下内容添加到Web.config无济于事:

如何在asp.net 5中为“asp-for”传递字符串值

我想为具有许多属性的实体编写Edit.cshtml文件,因此我必须多次编写以下代码: 实际上,有很多实体,所以我必须编写许多Edit.cshtml文件。 我想做一些简化 我想在控制器中选择实体的一些属性,并使用循环来显示视图中的属性。 例如:在控制器文件中: public IActionResult Edit(string id) { var model = GetModel(id); var propertyNames= new List() { “Name”, “Email” // add some other property names of the entity }; ViewData[“PropertyList”] = propertyNames; return View(model); } 在视图文件中: @{ var propertyNames = (List)ViewData[“PropertyList”]; foreach (string item in propertyNames) { } } 但它无法工作,因为它会产生错误的代码。 似乎我无法为“asp-for”标签助手传递字符串值。 例如,如果我将top的代码更改为: @{ […]

使用Entity Framework的Model上的DisplayName

我有一个代码如下: public class MyModel { [Required] [Display(Name = “labelForName”, ResourceType = typeof(Resources.Resources))] public string name{ get; set; } } 问题是在生成的Entity Framework模型类中添加了属性Display和Required。 我知道我可以使用Partial添加function但是如何将属性添加到将使用ORM擦除和更新的类?

为什么模型绑定器需要一个空构造函数

我需要一些基本面的帮助…… 我有这个控制器,用一个类的实例来提供我的视图(至少我认为它是如何工作的)。 所以,既然我给了我的视图一个新的对象实例,为什么它必须为我的post创建一个更新的模型绑定? 请看下面的例子。 [HttpGet] public ActionResult Index(){ int hi = 5; string temp = “yo”; MyModel foo = new MyModel(hi, temp); return View(foo); } [HttpPost] public ActionResult Index(MyModel foo){ MyModel poo = foo; if(poo.someString == laaaa) return RedirctToAction(“End”, “EndCntrl”, poo); else throw new Exception(); } View: @model myApp.models.MyModel @html.EditorFor(m => m.hi) Model: public class […]

在ASP.NET MVC应用程序中锁定一个全局对象时是否可能出现死锁?

对于锁定,我使用的是一个对我的应用程序来说是全局的静态对象: public class MvcApplication : System.Web.HttpApplication { public static readonly object AppLock = new object(); … } 用它来锁定代码: lock(MvcApplication.AppLock) { … } 我们暂时不要考虑性能影响。 我能100%确定在这种情况下我会避免死锁吗?

HTTP错误403.14 – 禁止使用 – 带有IIS Express的MVC 4

这似乎是一个已经被多次询问/回答的问题。 不是。 开发环境: VS 2012和MVC 4.我使用内置的IIS Express来运行应用程序。 直到昨天才发生此错误。 它突然开始发生,我被卡住了。 奇怪的是它只发生在一个场景中。 当我尝试访问http://localhost:49962/managescholars/ ,它显示错误 HTTP Error 403.14 – Forbidden The Web server is configured to not list the contents of this directory. 但使用http://localhost:49962/managescholars/Index工作正常。 同一控制器的其他动作方法也可以正常工作。 例如http://localhost:49962/managescholars/create 。 所有其他控制器也可以正常工作。 我尝试将以下内容添加到web.config中。 我也试过以管理员身份运行以下命令 %windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -ir 但它们都没有奏效。 编辑: 我修改了我的路线。 他们看起来如下。 public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute(“{resource}.axd/{*pathInfo}”); routes.MapRoute( name: “ManageScholarLectures”, url: “Manage/Lectures/{userFriendlyName}”, […]

禁止通过禁止的IP地址访问网站

我有一个机器人/黑客的IP地址列表,不断攻击我的一个网站。 我想通过IP阻止这些访问者,并试图为此制定一个“最佳”方法。 我的网站使用C#ASP.NET MVC。 我有一个IP的List 。 放置支票代码的最佳位置在哪里? 我正在考虑使用母版页的Page_Load事件,但也可以将它放在每个控制器的filter中…… 您将什么HTML返回到禁止的IP? 我不愿意返回“因为您的IP被禁止而被阻止的网站”,因为这将为黑客提供他们在块周围工作所需的信息。 这样做的好处是,它将为那些陷入交火的无辜用户提供他们无法访问该网站的原因。 我目前的感觉是我应该返回“维护现场”通知。 我应该使用虚假的“维护站点”通知返回什么HTTP状态代码? 我在想200。 站点正在Server 2003上运行。

ASP.NET MVC消息处理程序与Web API消息处理程序

我创建了2个项目: 正常的,基本的ASP.NET MVC 4应用程序 基本的ASP.NET WebAPI应用程序 我做的是我添加了自定义消息处理程序,从DelegatingHandler派生到它们。 这里是: public class MyHandler : DelegatingHandler { protected override Task SendAsync(HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) { return base.SendAsync(request, cancellationToken); } } 我在global.asax中注册了它们: GlobalConfiguration.Configuration.MessageHandlers.Add(new MyHandler()); 我给了一个断点 return base.SendAsync(request, cancellationToken); ASP.NET MVC和ASP.NET WebAPI之间的区别在于,当我调用ASP.NET MVC应用程序( http://localhost:4189/Something )时,不会触发断点 。 然而,当我调用Web API( http://localhost:7120/api/values )时, 会触发断点。 这是为什么? 那些应用程序类型执行流程有什么不同吗? 另外,当我尝试请求普通的Controller ,而不是ApiController应用程序的ApiController,如http://localhost:7120/Home , 不会触发断点。

在MVC5中指定日期格式(dd / MM / yyyy)

我正在尝试处理日期值的用户输入,我想提示用户以这种格式输入日期:dd / MM / yyyy 我试图做的: 我在这个问题中阅读并实现了Darin的答案: 在asp.net mvc 4中格式化日期时间 这是我的实现: 在Global.asax中 (ControllerContext controllerContext, ModelBindingContext bindingContext) { var displayFormat = bindingContext.ModelMetadata.DisplayFormatString; var value = bindingContext.ValueProvider.GetValue(bindingContext.ModelName); if (!string.IsNullOrEmpty(displayFormat) && value != null) { DateTime date; displayFormat = displayFormat.Replace (“{0:”, string.Empty).Replace(“}”, string.Empty); if (DateTime.TryParse(value.AttemptedValue, CultureInfo.InvariantCulture, DateTimeStyles.None, out date)) { return date; } else { bindingContext.ModelState.AddModelError( bindingContext.ModelName, string.Format(“{0} […]

c#mvc model vs viewbag

假设您在页面中有人员A列表和人员B列表。 这两个是L2S中的单独类,代表两个不同的表。 因此,您无法传递单个模型,如下所示: … @model PeopleA … @foreach(var peopleA in Model.People) … @foreach(var peopleB in //what?) 因此,我想,我有三个选择可以遵循。 第一个是将页面分成部分视图,以便我可以通过RenderAction帮助程序传递模型。 因为我只使用这些部分视图一次此选项似乎不吸引我。 第二种选择是使用我不想要的ViewBags,因为我更喜欢强类型模型。 最后一个,最后,我将要使用但想要在这样做之前询问,是创建一个模型如下: ModelMyPage.cs public List peopleA { get; set; } public List peopleB { get; set; } MyController.cs … ModelMyPage m = new ModelMyPage(); m.peopleA = // query m.peopleB = // another query return(m); 你明白了。 这是完成我的任务的有效方法还是有更好的c#方式来做我想要的?