Tag: asp.net mvc 4

在Post上的模型中保留SelectList

在MVC4中: 我的模型中有以下属性用于下拉列表: public SelectList Subjects { get; set; } 我在页面加载的Index()Action中设置了Subjects属性并返回模型。 使用SelectListItems可以很好地填充下拉列表。 @Html.DropDownListFor(x => x.Subject, new SelectList(Model.Subjects, “Text”, “Text”, “Other”)) 当我提交表单时,模型中的Subjects SelectList已更改为null。 必须有一种简单的方法来持久化HttpPost。 我想我也想提交和发布这个SelectList,以及所有表单字段? 我该怎么办?

由于以下错误,检索具有CLSID的组件的COM类工厂失败:80070005拒绝访问

我在IIS中托管了一个asp.net。 使用Com库“Microsoft Word 14.0对象库”。 我使用它将单词Document转换为HTML,在我的机器上它可以工作。 我的机器上有Office 2007。 但是当我尝试在服务器上运行我的应用程序时,它会给我以下错误 由于以下错误,检索具有CLSID {000209FF-0000-0000-C000-000000000046}的组件的COM类工厂失败:80070005拒绝访问。 (来自HRESULT的exception:0x80070005 E_ACCESSDENIED))。 我已授予aspnet用户和其他用户完全访问权限的所有权限,但这不起作用,

获取DropDownList的选定值。 Asp.NET MVC

我正在尝试填充DropDownList并在提交表单时获取所选值: 这是我的模型: public class Book { public Book() { this.Clients = new List(); } public int Id { get; set; } public string JId { get; set; } public string Name { get; set; } public string CompanyId { get; set; } public virtual Company Company { get; set; } public virtual ICollection Clients { […]

未找到“索引”视图或其主页

我是C#MVC项目类型的新手,当我创建一个空的C#MVC项目时,我注意到以下错误: The view ‘Index’ or its master was not found or no view engine supports the searched locations. The following locations were searched: ~/Views/ControllerName/Index.aspx ~/Views/ControllerName/Index.ascx ~/Views/Shared/Index.aspx ~/Views/Shared/Index.ascx ~/Views/ControllerName/Index.cshtml ~/Views/ControllerName/Index.vbhtml ~/Views/Shared/Index.cshtml ~/Views/Shared/Index.vbhtml 我在Views文件夹下有“Index.cshtml”文件。 为什么MVC引擎不直接在Views文件夹下? 我该如何解决这个问题? 我的RouteConfig.cs内容是: routes.IgnoreRoute(“{resource}.axd/{*pathInfo}”); routes.MapRoute( name: “Default”, url: “{controller}/{action}/{id}”, defaults: new { controller = , action = “Index”, id = UrlParameter.Optional } ); […]

尝试将MEF与MVC控制器一起使用时,CompositionContractMismatchException

我正在开发一个更大的C#MVC 4项目,该项目分为几个程序集(Core,Domain,Backend MVC,Frontend MVC等)。 我使用MEF提供的插件架构来加载和解决大多数依赖项。 现在我也想用它来加载MVC控制器。 在几十个样本中发现了典型的场景。 但我一直得到这个YSOD: 例外情况说: [CompositionContractMismatchException: Cannot cast the underlying exported value of type “XY.HomeController (ContractName=”XY.HomeController”)” to type “XY.HomeController”.] System.ComponentModel.Composition.ExportServices.CastExportedValue(ICompositionElement element, Object exportedValue) +505573 System.ComponentModel.Composition.c__DisplayClass10`2.b__c() +62 System.Lazy`1.CreateValue() +14439352 System.Lazy`1.LazyInitValue() +91 XY.DependencyManagement.SomeCustomControllerFactory.GetControllerInstance(RequestContext requestContext, Type controllerType) in (Path)\Core\DependencyManagement\SomeCustomControllerFactory.cs:32 System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext requestContext, String controllerName) +89 System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase httpContext, IController& controller, IControllerFactory& factory) +305 System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext, AsyncCallback […]

如何使用数据注释属性类来失败表单中的空字符串?

我试图在表单中要求一个文本输入字段,这意味着表单中需要有一些东西。 但是,向我的模型添加[Required]标记不起作用。 具体来说,查看User Name属性: public class ColumnWidthMetaData { [DisplayName(“Column Name”)] [Required] public string ColName { get; set; } [DisplayName(“Primary Key”)] public int pKey { get; set; } [DisplayName(“User Name”)] [Required] public string UserName { get; set; } [DisplayName(“Column Width”)] [Required] public int Width { get; set; } } 这允许空字符串通过模型validation,并在尝试为用户名插入NULL值时最终引发数据库错误。 如何更改这些属性,以便他们执行他们应该做的事情?

在序列化中将长数字转换为字符串

我有一个使用长ID的自定义类。 但是,当我使用ajax调用我的动作时,我的ID被截断并且它丢失了最后2个数字,因为javascript在处理大数字时失去了精度。 我的解决方案是给我的javascript提供一个字符串,但ID必须在服务器端保持长时间。 有没有办法将属性序列化为字符串? 我正在寻找某种属性。 调节器 public class CustomersController : ApiController { public IEnumerable Get() { yield return new CustomerEntity() { ID = 1306270928525862486, Name = “Test” }; } } 模型 public class CustomerEntity { public long ID { get; set; } public string Name { get; set; } } JSON结果 [{“Name”:”Test”,”ID”:1306270928525862400}]

ASP.Net Identity 2 – 来自OAuthAuthorizationServerProvider的自定义响应

这个问题是我之前的问题的延续: 使用SMS密码的ASP.Net Identity 2登录 – 不使用双因素身份validation 我已经构建了自定义OAuthAuthorizationServerProvider以支持自定义grant_type。 我的想法是创建一个sms grant_type,允许用户生成一次性访问代码,当用grant_type密码发送请求时,该代码将发送到他的手机,然后用户作为密码。 现在生成,存储和通过短信发送密码我想要返回自定义响应,而不是来自我的GrantCustomExtension的令牌。 public override async Task GrantCustomExtension(OAuthGrantCustomExtensionContext context) { const string allowedOrigin = “*”; context.OwinContext.Response.Headers.Add(“Access-Control-Allow-Origin”, new[] {allowedOrigin}); if (context.GrantType != “sms”) { context.SetError(“invalid_grant”, “unsupported grant_type”); return; } var userName = context.Parameters.Get(“username”); if (userName == null) { context.SetError(“invalid_grant”, “username is required”); return; } var userManager = context.OwinContext.GetUserManager(); ApplicationUser […]

使用部分视图时,MVC模型在post上为空

我有一个MVC控制器,其中post方法上的模型总是返回null。 我不确定这是因为我在表单中使用了局部视图。 知道为什么模型没有返回控制器吗? 模型 加载模型 public List GetStaticMeasures(int businessUnitID) { List groups = ctx.Groups .Include(“Datapoints”) .Where(w => w.BusinessUnitID.Equals(businessUnitID)) .OrderBy(o => o.SortOrder).ToList(); groups.ForEach(g => g.Datapoints = g.Datapoints.OrderBy(d => d.SortOrder).ToList()); return groups; } 调节器 public ActionResult Data() { ViewBag.Notification = string.Empty; if (User.IsInRole(@”xxx\yyyyyy”)) { List dataGroups = ctx.GetStaticMeasures(10); return View(dataGroups); } else { throw new HttpException(403, “You […]

捆绑的css链接收到404错误

我正在尝试捆绑在ASP.NET MVC 4中工作。我从为捆绑的CSS生成的链接中收到404错误。 我做了以下事情: 通过NuGet安装“Microsoft ASP.NET Web Optimization Framework”软件包(v4.0.20710.0) 在App_Start目录中创建了一个BundleConfig类,其中包含以下内容: using System.Web.Optimization; namespace BsdAppTemplate.Web_Nancy.App_Start { public class BundleConfig { public static void RegisterBundles(BundleCollection bundles) { bundles.Add(new StyleBundle(“~/bundles/styles/cvi”).Include( “~/mainstyles.css” )); } } } 在站点根目录的Web.config中添加了以下内容: … 将以下内容添加到我的MVC布局文件的head元素中: @Styles.Render(“~/bundles/styles/cvi”) 将BundleConfig(“mainstyles.css”)中引用的CSS文件复制到我的Web项目的根目录中。 当我查看渲染文件的来源时,我可以看到链接显示为: 此链接在浏览时会生成404,或在Chrome的网络标签中查看页面请求。 我也在Web表单上尝试过等效,但是从添加时生成的链接中得到了相同的结果(404):