Tag: asp.net mvc

反序列化包含单个或一组对象的JSON

我正在尝试反序列化包含图片url的事件数据。 当事件包含单个图像时,JSON字符串的格式为: “images”: { “image”: { “small”: {…}, “width”: “48”, “creator”: null, “thumb”: {…}, “height”: “48”, “url”: “http://example.com/image1.jpeg”, “medium”: {…}, “id”: “1” } } 当有多个图像可用时,响应的格式将更改为: “images”: { “image”: [ { “small”: {…}, “width”: “48”, “creator”: null, “thumb”: {…}, “height”: “48”, “url”: “http://example.com/image1.jpeg”, “medium”: {…}, “id”: “1” }, { “small”: {…}, “width”: “48”, “creator”: null, “thumb”: […]

如何在viewmodel中创建可选的是/否单选按钮

假设我有很长的forms,用户可以输入许多不同的可选值。 其中一个可选值是布尔值。 根据用户输入,我需要在我的数据库中执行以下操作: 如果“是”,则在数据库中添加“1” 如果为“否”,则在数据库中添加“0” 如果输入non,则在数据库中添加“null” 但是,我能找到的最正常的viewmodel / razor代码如下: @Html.LabelFor(m => m.FurnitureIsIncluded) @Html.RadioButtonFor(model => model.FurnitureIsIncluded, true) Ja 这里我的值将为false,作为布尔值的默认值。 在MVC中解决这个问题的方法是什么?

从HttpPost Asp.Net MVC方法返回保存的文件

我有一个Asp.Net MVC项目,在其中的一页上,用户可以将加载的数据编辑到表中(更改图像,字符串,项目顺序等)。 完成所有编辑后,客户端按下“下载”按钮,并将生成的xml文件保存在其硬盘驱动器上,以便将来进行下一次操作。 所以我有一个简单的HTML格式: {{data.Items[$index].Id}} 此表单数据通过angularJs函数调用发送,如下所示: $scope.sendForm = function () { // some preparations to send image data through json for (var i = 0; i < $scope.data.Items.length; i++) { $scope.data.Items[i].ImageAsString = $scope.data.Items[i].Image; } $http.post("Download", { array: $scope.data }) .success(function (responseData) { console.log(responseData); }) .error(function (responseData) { console.log("Error !" + responseData); }); }; 调用此函数后,准备好的http post请求发送到asp.net […]

实体类型不是当前上下文的模型的一部分

大段引用 我现在已经解决了这个问题几天了。 我正在尝试使用Visual Studio 2010 MVC2 EF 6.0创建数据库连接。 我可以使用服务器资源管理器连接到数据库。 这是我到目前为止所做的: 创建了一个Model:ModelEntities.edmx(连接到SQL Server DB) 2.为我正在尝试访问的表创建了一个Model:Table.cs(包含所有公共成员) public class Quickfix { public int FIX_ID { get; set; } public string NAME { get; set; } public string TYPE { get; set; } public string DESCRIPTION { get; set; } } 创建了一个DAL文件夹并将其上下文添加到其中:(ModelEntitesContext.cs) 使用ServiceDesk_Solution.Models; namespace ServiceDesk_Solution.DAL { public class ModelEntitiesContext […]

为什么LINQ to Entities无法识别方法’System.String ToString()?

在MVC3 Web应用程序中获取错误。 LINQ to Entities does not recognize the method ‘System.String ToString()’ method, and this method cannot be translated into a store expression. 当我尝试从查询中使用EF获取值时: public class DataRepository { public mydataEntities1 dbContext = new mydataEntities1(); public List GetPricingSecurityID() { var pricingSecurityID = (from m in dbContext.Reporting_DailyNAV_Pricing select new SelectListItem { Text = m.PricingSecurityID.ToString(), Value = m.PricingSecurityID.ToString() […]

使用HTML帮助程序减少代码重复

我有一个用ASP MVC编写的相当简单的数据审计Web应用程序,它有效地为不同目的提供了相同模型的两个视图。 代理视图 – 由validation信息的人填写的表单。 此视图中表单上的每个字段都有3个子字段: 一个。 原始值 – 调用之前数据库中的值 湾 新值 – 如果电话与原始电话不同,则由电话提供的值。 C。 行动 – 发生事件的一般指示 QC视图 – 由审核代理视图中执行的工作的人填写的表单。 此视图中表单上的每个字段都有5个子字段: 一个。 原始值 – 与上述相同 湾 代理值 – 代理商在上面1b中提供的值。 C。 QC值 – 如果代理指定的值不正确,则更正“新值”。 d。 代理操作 – 与上面相同,但在此视图中只读 即 QC行动 – 如果代理人选择不当,则更正“新行动”。 两个视图之间的唯一区别是可用的子字段。 我希望能够使用单个视图来表示两个视图,因为页面的整体结构是相同的,只需使用HTML帮助程序来处理子字段中的差异。 到目前为止我所拥有的是两个截然不同的助手系列(目前属于同一类,但可以分开): // Agent controls public static MvcHtmlString AuditControl(this HtmlHelper htmlHelper, string […]

将ViewModel传递给Layout.cshtml中的部分视图调用

背景 我正在尝试在我正在使用的MVC应用程序上使用Dashboard模板。 我不确定如何将ViewModel传递给我称为Header的顶部栏。 码 在我的_Layout.cshtml ,我像这样拆分HTML: @Html.Partial(“_Header”) @Html.Partial(“_Sidebar”) @RenderBody() 我猜这是错的,因为现在我无法将ViewModel传递给标题部分,或者如果我可以,我们不应该这样做? 分裂这个的正确方法是什么?

ASP.NET中的HostingEnvironment.QueueBackgroundWorkItem()用于小型后台任务

我来了一个很好的小工具,已经在v4.5.2中添加到了ASP.NET中 我正在徘徊它是多么安全以及如何在ASP.NET MVC或Web API场景中有效地利用它。 我知道我总是希望在我的Web应用程序中快速简单地执行任务并忘记任务。 例如: 发送电子邮件 发送推送通知 将分析或错误记录到数据库 现在通常我只创建一个名为的方法 public async Task SendEmailAsync(string to, string body) { //TODO: send email } 我会像这样使用它: public async Task Index() { … await SendEmailAsync(User.Identity.Username, “Hello”); return View(); } 现在我对此的担忧是,我推迟了用户以便向我们发送电子邮件。 这对我来说没什么意义。 所以我首先考虑做的是: Task.Run(()=> SendEmailAsync(User.Identity.Username, “Hello”)); 但是在阅读这篇文章的时候。 在IIS环境中显然不是最好的事情。 (我不是100%确定细节)。 所以这就是我遇到的HostingEnvironment.QueueBackgroundWorkItem(x=> SendEmailAsync(User.Identity.Username, “Hello”)); 这是一种非常快速简便的方法,可以将发送电子邮件任务卸载到后台工作程序,并更快地为用户View()提供服务。 现在我知道这不适用于运行时间超过90 seconds且不是100%保证执行的任务。 但我的问题是: HostingEnvironment.QueueBackgroundWorkItem()足以用于:在标准ASP.NET网站中发送电子邮件,推送通知,数据库查询等。

如何避免在sql连接和执行命令中重复

我可以用这个循环给我一个名字列表: string commandText = @”SELECT ….;”; string connectionString = ConfigurationSettings.AppSettings[“connectionString”]; using (SqlConnection connection = new SqlConnection(connectionString)) { SqlCommand command = new SqlCommand(commandText, connection); try { connection.Open(); using (SqlDataReader reader = command.ExecuteReader()) { DataTable dt = new DataTable(); dt.Load(reader); for (int i = dt.Rows.Count – 1; i >= 0; i–) { SqlCommand addresscommand = new SqlCommand(address, […]

Web服务意外地同步运行

我们有一个需要连接到慢速数据库进程并将值返回给客户端的Web服务,因此尝试异步运行它以阻止它阻塞线程。 但是,如果我们进行两次调用,它们会按顺序运行,而不是异步运行。 呼叫1在5秒后返回,在10后呼叫2,在15后呼叫3,依此类推。 这是(简化测试版)代码 – public class ImportAsyncController : AsyncController { [HttpPost] [Authorize(Roles = “Admin, ContentAdmin, ContentEdit”)] public async Task SlowProcess() { await Task.Delay(5000); return “Hello, world!”; } } IIS 7.5,默认设置。 遗产项目所以并非完全不可能,项目文件中的某些内容会强制它,但不知道是什么,抱歉。 作为参考,从中调用的实际代码调用SQL服务器sproc。 它在内部使用sp_getapplock进行并发逻辑,并在SSMS中运行时正确返回 – 调用1运行完成,如果调用1仍在运行,则调用> 1返回错误代码,否则返回自身完成。 那个逻辑很好; 问题实际上是在队列中按顺序处理Web请求,因此在调用1完成之前,甚至不会调用call> 1。 我们做错了什么?