Questions tagged «asp.net-mvc»

ASP.NET MVC框架是一个开源Web应用程序框架和工具,可实现针对Web应用程序量身定制并基于ASP.NET技术基础的模型-视图-控制器(MVC)模式版本。

1
使用Fluent验证进行条件验证
我需要的是一种方法,可以根据是否填写其他字段来有条件地验证字段。 例如 我有一个下拉列表和一个相关的日期字段。如果未设置任何字段,则表单应通过验证。但是,如果设置了两个字段之一,但未设置另一个字段,则将触发验证,要求设置另一个字段。 我已经编写了自定义验证类,但似乎是在单个字段上进行验证。有没有一种方法可以使用内置验证器来设置我需要的验证?如果不是,是否存在使用自定义验证器连接两个字段的好方法?

3
asp.net核心中间件与过滤器
在阅读了有关asp.net核心中间件的知识之后,我感到困惑了,什么时候应该使用过滤器,什么时候应该使用中间件,因为它们似乎实现了相同的目标。什么时候应该使用中间件代替装配工?

28
找不到VS 2017元数据文件'.dll
我知道还有另一个问题完全相同,但是我从所有这些答案中脱颖而出,没有一个帮助我。:((这是问题。) 我刚刚创建了一个新的ASP.NET MVC项目,并在解决方案中加入了一些'.dll'。现在,当我尝试构建项目时,在5个库中的3个上显示以下错误消息。 Error CS0006 Metadata file 'C:\Users\...\source\Database\bin\Debug\DataAccessLayer.dll' could not be found Logic C:\Users\...\source\Logic\CSC 1 Active Error CS0006 Metadata file 'C:\Users\...\source\Logic\bin\Debug\Logic.dll' could not be found PTS2-MVC C:\Users\...\source\PTS2-MVC\CSC 1 Active Error CS0006 Metadata file 'C:\Users\...\source\PTS2-MVC\bin\PTS2-MVC.dll' could not be found PTS2-MVC.Tests C:\Users\...\source\PTS2-MVC.Tests\CSC 1 Active 当我转到该.dll的bin \ debug文件夹时,我看到它为空,而没有收到错误消息的另一个.dll也为空。但是我不知道如何解决这个问题或为实现这一目标而做了什么。 最常见的答案是转到解决方案的属性,转到配置,然后取消选中-> Apply- >再检查并再次应用,但这没有用

8
在ASP.Net MVC应用程序中设置文化
在ASP.net MVC应用程序中设置文化/ UI文化的最佳位置是什么? 目前,我有一个CultureController类,看起来像这样: public class CultureController : Controller { public ActionResult SetSpanishCulture() { HttpContext.Session["culture"] = "es-ES"; return RedirectToAction("Index", "Home"); } public ActionResult SetFrenchCulture() { HttpContext.Session["culture"] = "fr-FR"; return RedirectToAction("Index", "Home"); } } 以及首页上每种语言的超链接以及如下链接: <li><%= Html.ActionLink("French", "SetFrenchCulture", "Culture")%></li> <li><%= Html.ActionLink("Spanish", "SetSpanishCulture", "Culture")%></li> 效果很好,但我认为有一种更合适的方法可以做到这一点。 我正在使用以下ActionFilter http://www.iansuttle.com/blog/post/ASPNET-MVC-Action-Filter-for-Localized-Sites.aspx阅读文化 。我有点MVC菜鸟,所以不确定我将其设置在正确的位置。我不想在web.config级别上执行此操作,它必须基于用户的选择。我也不想检查其HTTP标头以从其浏览器设置中获取区域性。 编辑: 只是要清楚-我不是要决定是否使用会话。我对此感到满意。我要解决的问题是,最好是在具有针对每个区域性设置操作方法的区域性控制器中执行此操作,还是在MVC管道中有更好的位置执行此操作?

21
自创建数据库以来,支持“ ApplicationDbContext”上下文的模型已更改
首先,在其他任何地方都没有看到此错误,我想这不是重复错误,因此请先阅读整个情况。 一切工作都很好,然后我尝试更新我的一个模型类(App类,现在对更新进行评论),我将在下面列出。和繁荣我有这个丑陋的错误。 自创建数据库以来,支持“ ApplicationDbContext”上下文的模型已更改。考虑使用“代码优先迁移”来更新数据库(http://go.microsoft.com/fwlink/?LinkId=238269)。System.Data.Entity.CreateDatabaseIfNotExists1.InitializeDatabase(TContext context) at System.Data.Entity.Internal.InternalContext.<>c__DisplayClassf上的System.Data.Entity.Internal.InternalContext.PerformInitializationAction(b)处的System.Data.Entity.Internal.InternalContext.PerformDatabaseInitialization()处的Action动作。 System.Data.Entity.Internal.RetryAction 1.PerformAction(TInput input) at System.Data.Entity.Internal.LazyInternalContext.InitializeDatabaseAction(Action1动作的Internal.LazyInternalContext.b__4(System.Data.Entity.Internal.LazyInternalContext.InitializeDatabase()的System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type)实体类型)位于System.Data.Entity.Internal.Linq.InternalSet1.Initialize() at System.Data.Entity.Internal.Linq.InternalSet1.System.Data.Entity.Infrastructure.DbQuery的1.Include(String路径),Microsoft.AspNet.Identity的1.Include(String path) at System.Data.Entity.QueryableExtensions.Include[T](IQueryableSystem.Data.Entity.QueryableExtensions.Include [T,TProperty](IQueryable 1 source, Expression1路径)处的String路径。6.GetUserAggregateAsync(ExpressionMicrosoft.AspNet.Identity.EntityFramework.UserStore 6.FindByNameAsync(String userName) at Microsoft.AspNet.Identity.UserManager2.FindByNameAsync(String userName)在Microsoft.AspNet.Identity.UserManager`2.d__12.MoveNext()的EntityFramework.UserStore 1筛选器)---从上一个位置开始的堆栈跟踪结束在d的System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)的System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)的ControlPanel.Web.Controllers.AccountController.d__2.MoveNext()中引发了异常:\ Projects \ FULL \控制面板\ ControlPanel.Web \ Controllers \ AccountController.cs:第56行 起初我以为可能是迁移问题,所以我完全删除了数据库,重新启用了迁移,然后添加了Init迁移并使用 update-database -force -verbose 一切顺利,没有任何抱怨,但是,每当我尝试登录到我的网站时,我都会收到先前的错误。我无法解决问题大约做了十次迁移。 这是我的领域类(模型): public class App { [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public virtual …

9
使用MVC,C#和jQuery导出为CSV
我正在尝试将列表导出到CSV文件。我已经完成所有工作,直到我想将文件写入响应流。这什么也没做。 这是我的代码: 从页面调用方法。 $('#btn_export').click(function () { $.post('NewsLetter/Export'); }); 控制器中的代码如下: [HttpPost] public void Export() { try { var filter = Session[FilterSessionKey] != null ? Session[FilterSessionKey] as SubscriberFilter : new SubscriberFilter(); var predicate = _subscriberService.BuildPredicate(filter); var compiledPredicate = predicate.Compile(); var filterRecords = _subscriberService.GetSubscribersInGroup().Where(x => !x.IsDeleted).AsEnumerable().Where(compiledPredicate).GroupBy(s => s.Subscriber.EmailAddress).OrderBy(x => x.Key); ExportAsCSV(filterRecords); } catch …
85 c#  jquery  asp.net-mvc  csv 

8
如何在ASP.NET MVC中进行分页?
在ASP.NET MVC中进行分页的最优选和最简单的方法是什么?即,将列表分成几个可浏览页面的最简单方法是什么。 举例来说,假设我从数据库/网关/存储库中获取了这样的元素列表: public ActionResult ListMyItems() { List<Item> list = ItemDB.GetListOfItems(); ViewData["ItemList"] = list; return View(); } 为了简单起见,我只想为我的操作指定页码作为参数。像这样: public ActionResult ListMyItems(int page) { //... }


2
异步PartialView导致“ HttpServerUtility.Execute被阻止…”异常
我有一个局部视图试图IEnumerable<Post>使用异步从数据库中检索一个... 方法 public static class PostService { public static int PostsPerPage = 50; public static async Task<IEnumerable<Post>> GetRecentAsync(int page = 0) { return await entityFrameworkDbContext.Posts .ToListAsync(); } } 局部视图 public async Task<ActionResult> Recent(int page = 0) { return PartialView(await PostService.GetRecentAsync(page)); } 然后,如果我尝试称呼它 @Html.Action("Recent", "Post") 我得到以下异常 HttpServerUtility.Execute在等待异步操作完成时被阻止。 说明:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其在代码中起源的更多信息。 异常详细信息:System.InvalidOperationException:HttpServerUtility.Execute在等待异步操作完成时被阻止。 为什么会出现此错误?不行吗

4
Web.Config文件在MVC项目的views文件夹中做什么
我在部署应用程序时遇到一些问题,在进行故障排除时,我碰到了Web.Config文件Views夹中的文件。为了缩小问题源的可能性,我试图找出该〜Web.Config`文件的用途,但实际上找不到太多信息。 所以基本上我的问题是: 该Web.config文件在ViewsMVC项目的文件夹中做什么? 需要吗? 我相信在Asp.Net Webforms中,要在文件夹中使用单独的web.config文件,必须将该文件夹设置为IIS中的虚拟文件夹。在MVC中是否就是这种情况(即Views文件夹是否需要配置为虚拟文件夹)?

8
目录上的“ 401未经授权”
我认为这是一个IIS错误,因为如果我在本地计算机上运行该项目,则不会发生。 我的样式表在 ~/Content/css 该目录中的任何文件都不会加载到页面上,当我直接导航到它们时,出现服务器错误: 401-未经授权:由于凭据无效,访问被拒绝。 您无权使用您提供的凭据查看此目录或页面。 这仅在该目录下发生,访问任何其他文件都没有问题。我需要在IIS7中做些事情来阻止这种情况吗?


14
在需要进行模拟和单元测试时,如何抛出SqlException?
我正在尝试测试项目中的一些异常,而我捕获的异常之一是SQlException。 看来您不能走,new SqlException()所以我不确定如何抛出异常,尤其是在不以某种方式调用数据库的情况下(由于这些是单元测试,通常建议不要调用数据库,因为它很慢)。 我正在使用NUnit和Moq,但不确定如何伪造。 在回答似乎全部基于ADO.NET的某些答案时,请注意我正在使用Linq to Sql。这样的东西就像在幕后。 @MattHamilton要求的更多信息: System.ArgumentException : Type to mock must be an interface or an abstract or non-sealed class. at Moq.Mock`1.CheckParameters() at Moq.Mock`1..ctor(MockBehavior behavior, Object[] args) at Moq.Mock`1..ctor(MockBehavior behavior) at Moq.Mock`1..ctor() 尝试制作模型时发布到第一行 var ex = new Mock<System.Data.SqlClient.SqlException>(); ex.SetupGet(e => e.Message).Returns("Exception message");

6
从Asp.net WEBAPI显式返回JSON字符串?
在某些情况下,我拥有NewtonSoft JSON.NET,在控制器中,我只是从控制器中返回Jobject,一切都很好。 但是我遇到的情况是,我从另一个服务中获取了一些原始JSON,并且需要从我的webAPI中返回它。在这种情况下,我不能使用NewtonSOft,但是如果可以的话,我将根据字符串创建一个JOBJECT(这似乎是不需要的处理开销),并返回该值,那么一切都会变得很好。 但是,我想简单地返回它,但是如果我返回字符串,那么客户端会收到一个JSON包装器,并将我的上下文作为编码字符串。 如何从WebAPI控制器方法显式返回JSON?

5
如何强制Entity Framework始终从数据库获取更新的数据?
我正在使用EntityFramework.Extended库执行批处理更新。唯一的问题是EF无法跟踪该库执行的批量更新。因此,当我DbContext再次查询时,它不会返回更新的实体。 我发现AsNoTracking()在查询时使用method会禁用跟踪并从数据库中获取新数据。但是,由于EF无法跟踪使用查询的实体AsNoTracking(),因此我无法对查询的数据执行任何更新。 有什么方法可以强制EF在跟踪更改时获取最新数据?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.