Questions tagged «asp.net-mvc»

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




4
Razor / CSHTML-我们拥有什么好处?[关闭]
从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 任何人都在使用新的CSHTML页面功能,并且发现他们比现有的ASP.NET MVC默认视图引擎或Web表单更喜欢这种新的视图引擎语法,如果是,为什么?与HTML相比,CSHTML会给您带来什么优势,反之亦然? 只是好奇地听到人们对此的看法。
75 c#  asp.net-mvc  razor 

1
使用OWIN身份从多个API客户端注册Web API 2外部登录
我想要以下架构(在此示例中,我组成了产品名称): 在一台服务器上运行的Web API 2应用程序 http://api.prettypictures.com 在另一台服务器上运行的MVC 5客户端应用程序 http://www.webpics.com 我希望www.webpics.com客户端应用程序使用Pretty Pictures API来: 使用用户名和密码注册新帐户 在Facebook / Google / Twitter / Microsoft注册新帐户 登录 检索图片 以上所有工作,除了在Facebook,Google等处注册外部帐户外。 我无法计算出正确的流程来从API的单独客户端用户创建外部帐户。 我研究了身份验证流程中可用的大多数文档,例如: 我已经阅读了关于OWIN中新Identity模式的几乎所有内容。 我已经检查了Visual Studio 2013中的SPA模板。该模板演示了如何执行我所需的大部分操作,但仅当客户端和API位于同一主机上时才执行。如果我希望多个客户端访问我的API并能够让用户通过Google等进行注册,则无法正常工作,据我所知,OWIN身份验证流程中断了。 到目前为止的流程如下: 用户浏览到www.webpics.com/Login www.webpics.com调用api.prettypictures.com/Account/ExternalLogins(用RETURNURL一套回去在回调www.webpics.com),并显示最终链接到用户 用户点击“ Google” 浏览器使用提供者的名称等重定向到api.prettypictures.com/Account/ExternalLogin。 API的ExternalLogin操作实例化了对google.com的挑战 浏览器被重定向到google.com 用户输入其用户名和密码(如果尚未登录google.com) google.com现在提供安全检查:“ api.prettypictures.com”希望访问您的电子邮件地址,姓名,妻子,子女等。可以吗? 用户单击“是”,并使用Google设置的cookie带回到api.prettypictures.com/Account/ExternalLogin。 这就是我卡住的地方。接下来应该发生的是,应该以某种方式通知客户端应用程序用户已成功通过google.com进行身份验证,并获得一次性使用访问代码,以稍后交换访问令牌。客户端应用应有机会(如有必要)提示用户输入用户名,以与其google.com登录名相关联。 我不知道该怎么做。 实际上,在这一点上,浏览器最终在Google回调后位于api.prettypictures.com/Account/ExternalLogin端点。该API已针对Google登录,但客户端不知道如何处理。我应该将该Cookie传送回www.webpics.com吗? 在SPA应用程序中,这是通过AJAX完成的,并且google.com将返回令牌作为URL片段,并且由于它们都位于一个域中,因此效果很好。但是,这与拥有多个客户端可以完全使用的“ API”的许多观点不符。 救命!

3
如何将整个模型追加到formdata并在MVC中获取它
如何通过formdata传递整个模型对象并将其转换为控制器中的模型类型? 以下是我尝试过的! JavaScript部分: model = { EventFromDate: fromDate, EventToDate: toDate, ImageUrl: imgUrl, HotNewsDesc: $("#txthtDescription").val().trim(), }; formdata.append("model",model); 然后将其传递给AJAX,它将是一个字符串,如果我检查Request.Form["model"]结果的值将是相同的,即它将作为字符串接收,并且值将是"[object object]" 有什么方法可以通过formdata传递模型并在控制器中接收模型?

12
更新用户数据-ASP.NET身份
我向ApplicationUser类添加了自定义字段, 还创建了一种表单,用户可以通过该表单输入/编辑字段。 但是由于某种原因,我无法更新数据库中的字段。 [HttpPost] [ActionName("Edit")] [ValidateAntiForgeryToken] public async Task<ActionResult> Manage(EditProfileViewModel model) { if (ModelState.IsValid) { // Get the current application user var user = User.Identity.GetApplicationUser(); // Update the details user.Name = new Name { First = model.FirstName, Last = model.LastName, Nickname = model.NickName }; user.Birthday = model.Birthdate; // This is …

5
MVC的当前上下文中不存在名称“脚本”
在我的mvc应用程序中,_Layout.cshtml中的代码如下... <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>@ViewBag.Title - My ASP.NET Application</title> @Styles.Render("~/Content/css") @Scripts.Render("~/bundles/modernizr") </head> 但问题是它说The name 'Scripts' does not exists in the current context。 我已经将程序集添加到引用和Bundle配置中,如下所示: using System.Web.Optimization; @styles也会发生这种情况。我该怎么办?
75 c#  asp.net-mvc  razor 

5
单元测试ASP.NET DataAnnotations验证
我正在使用DataAnnotations进行模型验证,即 [Required(ErrorMessage="Please enter a name")] public string Name { get; set; } 在我的控制器中,我正在检查ModelState的值。对于从我的视图发布的无效模型数据,这正确返回了false。 但是,在执行控制器动作的单元测试时,ModelState始终返回true: [TestMethod] public void Submitting_Empty_Shipping_Details_Displays_Default_View_With_Error() { // Arrange CartController controller = new CartController(null, null); Cart cart = new Cart(); cart.AddItem(new Product(), 1); // Act var result = controller.CheckOut(cart, new ShippingDetails() { Name = "" }); // Assert …




2
为什么对同一个ASP.NET MVC操作同时进行多个AJAX调用会导致浏览器阻塞?
几天前,我问了这个问题: 为什么$ .getJSON()会阻止浏览器? 我几乎在同一控制器动作上同时触发了六个jQuery ajax异步ajax请求。每个请求需要10秒才能返回。 通过调试和记录对操作方法的请求,我注意到请求已被序列化,并且从未并行运行。即我在log4net日志中看到一个时间轴,如下所示: 2010-12-13 13:25:06,633 [11164]信息-获得:1156 2010-12-13 13:25:16,634 [11164]信息-返回:1156 2010-12-13 13:25:16,770 [7124]信息-得到:1426 2010-12-13 13:25:26,772 [7124]信息-返回:1426 2010-12-13 13:25:26,925 [11164]信息-得到:1912 2010-12-13 13:25:36,926 [11164]信息-返回:1912 2010-12-13 13:25:37,096 [9812]信息-得到:1913 2010-12-13 13:25:47,098 [9812]信息-返回:1913 2010-12-13 13:25:47,283 [7124] INFO-Got:2002 2010-12-13 13:25:57,285 [7124]信息-返回:2002 2010-12-13 13:25:57,424 [11164]信息-获得:1308 2010-12-13 13:26:07,425 [11164]信息-返回:1308 查看FireFox中的网络时间轴,我看到以下内容: 上面的日志示例和Firefox网络时间轴都针对同一组请求。 是否对来自同一页面的同一操作的请求进行了序列化?我知道Session在同一会话中对对象的序列化访问,但是没有任何会话数据被触摸。 我将客户端代码剥离为一个请求(运行时间最长的请求),但这仍然会阻塞浏览器,即,仅当ajax请求完成时,浏览器才会响应任何链接单击。 我在这里(在Chrome的开发人员工具中)还观察到,在长时间运行的ajax请求执行时单击链接时,它Failed to load …

3
在WebApi控制器中读取HttpContent
如何在MVC webApi控制器操作中读取PUT请求上的内容。 [HttpPut] public HttpResponseMessage Put(int accountId, Contact contact) { var httpContent = Request.Content; var asyncContent = httpContent.ReadAsStringAsync().Result; ... 我在这里得到空字符串:( 我需要做的是:找出在初始请求中修改/发送的“哪些属性”(这意味着如果该Contact对象具有10个属性,而我只想更新其中2个属性,则发送和对象只有两个属性,像这样的东西: { "FirstName": null, "LastName": null, "id": 21 } 预期的最终结果是 List<string> modified_properties = {"FirstName", "LastName"}

5
在不同的控制器动作方法之间传递数据
我正在使用ASP.NET MVC 4。我正在尝试将数据从一个控制器传递到另一个控制器。我做错了。我不确定是否可行? 这是我要从中传递数据的源操作方法: public class ServerController : Controller { [HttpPost] public ActionResult ApplicationPoolsUpdate(ServiceViewModel viewModel) { XDocument updatedResultsDocument = myService.UpdateApplicationPools(); // Redirect to ApplicationPool controller and pass // updatedResultsDocument to be used in UpdateConfirmation action method } } 我需要将其传递给此控制器中的此操作方法: public class ApplicationPoolController : Controller { public ActionResult UpdateConfirmation(XDocument xDocument) { …

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.