Tag: asp.net mvc

未找到Visual Studio 2015上的ASP.NET 5 addMvc方法

我正在关注本教程: http : //www.asp.net/vnext/overview/aspnet-vnext/create-a-web-api-with-mvc-6来设置web api,我还没有把它做得很远。 一旦我添加了行: services.addMvc(); 我有一个例外,说找不到这个方法。 我在网上搜索并在这里找到了一个单独的问题/答案: http : //forums.asp.net/t/2026087.aspx但这没有帮助。 我的startup.cs看起来像这样: public void ConfigureServices(IServiceCollection services) { services.AddMvc(); } public void Configure(IApplicationBuilder app) { app.UseMvc(); app.UseWelcomePage(); } 还有我的project.json: { “webroot”: “wwwroot”, “version”: “1.0.0-*”, “exclude”: [ “wwwroot” ], “packExclude”: [ “node_modules”, “bower_components”, “**.kproj”, “**.user”, “**.vspscc” ], “dependencies”: { “Microsoft.AspNet.Server.IIS”: “1.0.0-beta2”, “Microsoft.AspNet.Diagnostics”: “1.0.0-beta1”, “Microsoft.AspNet.Mvc”: “6.0.0-beta1” }, […]

TempData类似于WebForms中的对象 – 仅1个附加请求的会话状态

我想通过会话状态仅为一个请求存储一些对象。 我似乎无法想到一个简单的方法来实现这一目标。 这正是 ASP.NET MVC的TempData对象所做的。 任何人都可以向我提供一个链接或一些如何让一个对象处于会话状态的例子只能存活一个额外的请求吗? 我想,这可以通过制作一个自定义字典对象来实现,该对象存储每个项目的年龄(请求数)。 通过订阅Application_BeginRequest和Application_EndRequest方法,您可以执行所需的对象清理。 这甚至可能有助于创建一个存储X请求数据的对象,而不仅仅是一个。 这是正确的轨道吗?

如何模拟HttpContext.User

我正在开发一个Asp.net MVC 5项目,我正在尝试设置一个模拟以在控制器中返回自定义主体。 我有搜索并尝试了不同的方法,但没有一个有效。 我有一个BaseController,我的所有控制器都inheritance自。 BaseController有一个User属性,它在getter中返回HttpContext.User。 HttpContext.user在项目中调用时返回一个值,但在从unit testing项目调用时返回null。 BaseController public class BaseController : Controller { protected virtual new CustomPrincipal User { get { return HttpContext.User as CustomPrincipal; } ***<== Line with issue*** } } 自定义校长 public class CustomPrincipal : IPrincipal, ICustomPrincipal { public IIdentity Identity { get; private set; } public string UserId { get; […]

ASP.NET MVC:编辑时忽略字段

由于我正在学习ASP.NET MVC,我遇到了一个问题并遇到了一些麻烦 我正在尝试创建一个简单的博客,只是为了测试我到目前为止学到的东西。 但是当谈到编辑和离开一个领域我遇到了问题。 我正在尝试在我的博客上编辑已提交的post,该post包含几个字段:提交的标题,标题,消息,作者和日期,不应该被编辑,只是保持原样。 这是一些代码: 我的post模型: namespace MyBlock.Models { public class Post { public int Id { get; set; } [Required] public string Author { get; set; } [Required] public string Headline { get; set; } [Required] public string Message { get; set; } public DateTime Date { get; set; } } } 我的编辑: […]

在Web Api控制器中将JSON反序列化为字典

我有这样的JSON字符串: ‘{“1″:[1,3,5],”2″:[2,5,6],”3”:[5,6,8]}’ 我想将其发送到Web Api控制器而不使用ajax请求更改: $.ajax({ type: “POST”, url: “Api/Serialize/Dict”, data: JSON.stringify(sendedData), dataType: “json” }); 在Web Api我有这样的方法: [HttpPost] public object Dict(Dictionary<int, List> sendedData) { //code goes here return null; } 总是sendedData == null. 换句话说:我不知道如何将JSON反序列化为(Dictionary<int, List> 。 谢谢你的答案。

web.config maxJsonLength问题

我尝试从一侧使用HttpClient.PostAsJsonAsync发送大消息json(带图像),并尝试使用Microsoft.AspNet.Mvc version =“5.2.3”在Controller中获取数据。 当我发送小消息时,一切都很好。 移动代码详情: private async Task Method(string url, TRequest request, IEnumerable<KeyValuePair> headers) { using (var client = new HttpClient(_httpClientHandlerFactory.CreateHandler())) { client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(“application/json”)); client.DefaultRequestHeaders.CacheControl = new CacheControlHeaderValue { NoCache = true }; AddHeadersToClient(client, headers); var response = await client.PostAsJsonAsync(url, request); … 另一方面: public class MyController: Controller { [HttpPost] public ActionResult EmailBody(string siteShortName, string […]

在MVC4路由中使用点“。”字符

我目前正在提供来自数据库表的图像,这些表都是相同的文件类型。 我想要字符点“。” 在路线上,但没有取得任何成功。 据我了解,ISAPI处理程序可能会导致与此相关的问题。 我只是不确定如何添加和排除以允许这个路由由ASP.NET处理。 routes.MapRoute( name: “ImageUrl”, url: “Image/{action}/{id}.png”, defaults: new { controller = “Image” } );

linq2sql图像保存问题

我有一个具有属性的对象: [Column] public Binary Image { get; set; } 当第一次保存对象时,每次都可以,但是当它被修改时,我在SubmitChanges上得到一个例外: 数据类型image和varbinary(max)在等于运算符中不兼容。 这可能是什么问题?

如何通过操作结果从另一个局部视图更新局部视图

我对主视图有三个部分视图 在第一个局部视图中我有搜索function,当用户点击搜索时我想将结果刷新到第三个局部视图。 控制器: public ActionResult Search() { virtualmodel vm = new virtualmodel(); return PartialView(svm); } [HttpPost] public ActionResult Search(ViewModel svm) { // Query to retrive the result // I am not sure what to return from here. Link to another action or just return back to same same partial } public ActionResult AnotherPartialPartial() { } […]

Identity 2.0声明未添加到数据库中

我正在使用MVC5和最新版本的Identity(2.1)我正在尝试为facebook access_token创建用户声明。 我之前从未创建过声明,但据我所知,我的其他身份function正常工作。 我在Startup.Auth.cs中有这行代码: context.Identity.AddClaim(new Claim(“urn:facebook:access_token”, context.AccessToken, xmlSchemaString, “Facebook”)); 如果您需要更多参考,那么完整的代码就在这里: 将facebooksdk与Identity 2.0集成 如果我在该行之后的行中的代码中放置一个中断,我可以看到所有内容都被正确检索,最重要的是content.AccessToken (这是一个巨大的字符串)。 但是,在完成成功登录后,它永远不会进入数据库。 作为测试,我尝试通过将行更改为此来简化它: context.Identity.AddClaim(new System.Security.Claims.Claim(ClaimTypes.Email, “test@example.com”)); 结果相同,没有错误,但没有任何内容添加到数据库中。 然后我尝试在IdentityModels.cs中添加这行代码,它告诉您放置自定义声明: // Add custom user claims here userIdentity.AddClaim(new Claim(ClaimTypes.DateOfBirth, “01/01/1972”)); 相同的结果……没有错误,也从未进入数据库。 任何人都可以想到我的问题可能是什么原因吗? 我的身份设置中唯一自定义的是我关于如何使用用户名而不是电子邮件(作为用户名)的文章。 此外,我在OnModelCreating块中更改了Identity表名称(例如UserClaims),这似乎是一个相当标准的过程。 我有一种感觉,这将是一些新手的举动,但此刻,我很难过。 任何帮助深表感谢。