Tag: asp.net mvc 4

如何在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 { […]

如何在mvc 4上通过统一在控制器中注入构造函数

我正在使用Unity 1.1版本,我无法注入构造函数。 我的代码是: 在global.asax中注册依赖项Application_Startup方法: Core.Instance.Container.RegisterType(); 注入构造函数: private ICartBusiness _business; public FooController(ICartBusiness business) { _business = business; } mvc抛出此exception: 没有为此对象定义无参数构造函数。 PS:我不能使用任何新版本的统一,因为我使用过于引用的旧dll所以我不能使用unity.WebApi或unity.Mvc3 dlls。 这该怎么做?

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)

Asp.Net MVC和ajax异步回调执行顺序

我整天都在整理这个问题,希望有人可以帮助查明我的问题。 我在我的应用程序中使用ajax创建了“异步进度回调”类型function。 当我将function剥离到测试应用程序中时,我得到了所需的结果。 见下图: 期望的function 当我使用相同的代码将function绑定到我的单页面应用程序时,我遇到了一种阻塞问题,其中所有请求仅在最后一个任务完成后才响应。 在上面的测试应用程序中,所有请求都按顺序响应。 服务器报告所有请求的(“挂起”)状态,直到控制器方法完成。 任何人都可以给我一个关于可能导致行为改变的暗示吗? 不希望 期望的小提琴请求/响应 GET http://localhost:12028/task/status?_=1383333945335 HTTP/1.1 X-ProgressBar-TaskId: 892183768 Accept: */* X-Requested-With: XMLHttpRequest Referer: http://localhost:12028/ Accept-Language: en-US Accept-Encoding: gzip, deflate User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0) Connection: Keep-Alive DNT: 1 Host: localhost:12028 HTTP/1.1 200 OK Cache-Control: private Content-Type: text/html; charset=utf-8 Vary: Accept-Encoding Server: Microsoft-IIS/8.0 X-AspNetMvc-Version: […]

WebAPI上传错误。 MIME多部分流的预期结束。 MIME多部分消息未完成

作为MVC4的WebAPI的一部分,我一直在关注本教程以支持文件上传: http : //blogs.msdn.com/b/henrikn/archive/2012/03/01/file-upload-and-asp-net-web -api.aspx 。 当我的控制器收到请求时,它会抱怨“MIME多部分消息未完成”。 有没有人有关于如何调试这个的任何提示? 我已经尝试将流的位置重置为0,因为在它遇到处理程序之前还有其他东西在读取它之前。 我的HTML看起来像这样: Select file(s) to upload : 和我的控制器的Post方法如下: public Task<IEnumerable> Post() { if (Request.Content.IsMimeMultipartContent()) { Stream reqStream = Request.Content.ReadAsStreamAsync().Result; if (reqStream.CanSeek) { reqStream.Position = 0; } string fullPath = HttpContext.Current.Server.MapPath(“~/App_Data”); var streamProvider = new MultipartFormDataStreamProvider(fullPath); var task = Request.Content.ReadAsMultipartAsync(streamProvider).ContinueWith(t => { if (t.IsFaulted || t.IsCanceled) Request.CreateErrorResponse(HttpStatusCode.InternalServerError, t.Exception); […]

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}”, […]

无法检索元数据 – MVC应用程序

我这样做是为了创建一个简单的MVC应用程序。 创建模型后,当我尝试添加控制器时,出现以下错误: 无法检索“MvcApplication.Models.Movie”的元数据。 键“attachdbfilename”的值无效。 有人可以告诉我为什么会收到此错误。 更新 :我看到了这一点,其中通过更改providerName提供了解决方案。 但在我的情况下,它已经是System.Data.SqlClient 。 以下是我的connectionStrings:

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 , 不会触发断点。

从自定义AdditionalMetadataAttribute访问模型类实例(asp.net mvc 5)

我有以下情况 – 我需要编写一个自定义的附加元数据属性,该属性基于另一个属性值(来自同一模型),向AdditionalValues字典添加一个值。 现在,我的问题是我无法访问属性类中的模型实例。 [AttributeUsage(AttributeTargets.Property)] public class ExtendedAdditionalMetadataAttribute : Attribute, IMetadataAware { #region Private properties private string extraFieldToCheck { get; set; } private string extraFieldValueToCheck { get; set; } private string fieldToBeAdded { get; set; } private string fieldValueToBeAdded { get; set; } #endregion #region Constructor public ExtendedAdditionalMetadataAttribute(string extraFieldToCheck, string extraFieldValueToCheck, string fieldToBeAdded, string fieldValueToBeAdded) […]

如何在groupby和sum行和列中关系表和Where(asp-route-id)

第一张表是发电厂名称列表 public class PowerPlants { public int ID { get; set; } [Required] public string PowerPlantName { get; set; } [Required] public string PowerPlantShortName { get; set; } [Required] public string PowerPlantCode { get; set; } public virtual ICollection REHPData { get; set; } public virtual ICollection BudgetYearlyAllocation { get; set; } } 第二个表是BudgetYear表 public […]