Tag: asp.net mvc

通过MVC3中的TempData将MemoryStream转换为IMG – 有更好的方法吗?

除了其他属性之外,模型还包含将MSChart作为MemoryStream返回的方法。 在我的视图中,我将MemoryStream复制到TempData [“Chart”],然后使用URL.Action()调用控制器操作,以使用TempData中的MemoryStream返回FileContentResult。 在模型中 public MemoryStream ViewerChart() { Chart chart = new Chart(); : : using (MemoryStream memStream = new MemoryStream()) { chart.SaveImage(memStream, ChartImageFormat.Jpeg); return memStream; } } 在视图中 @{ TempData[“Chart”]= Model.ViewerChart(); } 在控制器中 public ActionResult RenderChart() { MemoryStream ms = TempData[“Chart”] as MemoryStream; return File(ms.ToArray(), “image/jpeg”); } 尽管工作正常,但这对我来说似乎有点讨厌,尤其是使用TempData 有没有更好的办法?

带有postfunction的MVC Html.ActionLink?

我正在检查是否有人为Html.ActionLink编写了一个MVC扩展,你可以传入Post参数,如: 这将使链接像正常一样呈现,但是有一个onClick事件,它提交一个也呈现的表单,其中包含Action,Controller和Route Values的Action url以及Post Parameters中的其他隐藏输入,如下所示: Click me 我希望将用户重定向到可能包含大量数据的各种页面。 不仅从页面到页面,而且从电子邮件到页面也是如此。 这将是高度可重用的,我认为会清理很多代码,并且如果它已经漂浮在那里,将节省大量时间来编写它。 我讨厌在不需要的时候重新制作轮子。

如何读取扩展文件属性/文件元数据

所以,我按照教程使用ASP.net核心“上传”文件到本地路径,这是代码: public IActionResult About(IList files) { foreach (var file in files) { var filename = ContentDispositionHeaderValue .Parse(file.ContentDisposition) .FileName .Trim(‘”‘); filename = hostingEnv.WebRootPath + $@”\{filename}”; using (FileStream fs = System.IO.File.Create(filename)) { file.CopyTo(fs); fs.Flush(); } } return View(); } 我想读取文件的扩展属性(文件元数据),如: 名称, 作者, 发布日期, 等等 并使用此数据对文件进行排序,是否有使用Iformfile的方法?

MVC 2查看显示错误的模型信息

我正在使用MVC 2进行项目,我遇到了一个视图问题。 在控制器中我有代码: return View(calendarDay); 如果我调试这一行并检查calendarDay它告诉我calendarDay.Id属性等于2.在视图中我有一些代码如下: model.Id) %> 但是,当在将其绑定到具有Id属性= 2的calendarDay之后显示视图时,我在生成的HTML上得到此信息: 值为1,因此当我执行TryUpdateModel(calendarDay)时,它将Id属性设置为1而不是2,当我转到存储库以使对象删除它时,它会崩溃,因为它找到了错误的。 谁知道我可能做错了什么?

MVC .net核心没有正确显示特殊字符

我在MVC .net核心网站上有一个非常简单的视图。 @model MvcSearch.Models.SearchModel @{ ViewData[“Title”] = “Index”; } Buscador de Información @Html.Partial(“SearchBox”, Model.Search) @if (Model.Results.Count() == 0) { No hay nada que mostrar, ¡busca algo! } 一切都是薄荷,但不是ó和¡符号,它显示了这个角色: 以前从未发生过这件事,这是我的第一个.net核心项目。 O寻找可能的解决方案, 这里和其他类似的解决方案。 但没有一个完全解决我的环境。 我尝试了第二个链接,但我遇到了一些问题。 对System.Text.Encoding(4.3.0)和System.Text.Encoding.CodePages(4.3.0)的引用都标有警告图标,但在使用Nuget Package Manager安装期间均未显示错误或警告 我完全明白我必须使用这一行 Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); 但是在startup.cs中不知道到底在哪里? 我不知道这意味着什么 调用Encoding.GetEncoding重载以检索编码。 Encoding.GetEncoding方法将调用相应的EncodingProvider.GetEncoding方法来确定它是否可以提供所请求的编码。 我甚至不确定这是解决这个问题的正确方法。 我也认为脚手架视图文件的内部编码与手动创建的文件不同。 我应该创建新的空View文件并将文本复制到新文件中吗?

错误:异步操作仍处于挂起状态时,异步模块或处理程序已完成

我有一个Controller Action方法来保存用户详细信息,如下所示。 public async Task SaveUser(ViewModel.VM_CreateUser user) { var result = await _user.Save(userDetails); return Json(new { Success = String.IsNullOrEmpty(result) }); } 到目前为止,上述4行function没有问题。 public async Task SaveUser(ViewModel.VM_CreateUser user) { var result = await _user.Save(userDetails); new MailController().CreateUser(user.userDetails); //<==This is problem line of code. } 以下是我的邮件控制器。 public class MailController : MailerBase { public void CreateUser(ViewModel.VM_User user) { To.Add(user.EmailAddress); […]

如何下载多个文件? 获取“在发送HTTP标头后服务器无法清除标头”。

我有一个MVC应用程序,显示了一个供下载的文件列表。 用户选择带有复选框的文件,这些文件使用Pechkin库在服务器端生成为PDF。 我的问题是,当下载多个文件时,我收到的错误是“服务器在发送HTTP标头后无法清除标头”。 我意识到这是因为我只能将一个HTTP响应发送回客户端,但我不知道如何解决这个问题。 public ActionResult Forms(FormsViewModel model) { foreach (var item in model.Forms) { if (item.Selected) { CreatePdfPechkin(RenderRazorViewToString(model.FormType, model.Form), model.Name); } } return View(model); } private void CreatePdfPechkin(string html, string filename) { var pechkin = Factory.Create(new GlobalConfig()); var pdf = pechkin.Convert(new ObjectConfig() .SetLoadImages(true).SetZoomFactor(1.1) .SetPrintBackground(true) .SetScreenMediaType(true) .SetCreateExternalLinks(true), html); Response.Clear(); Response.ClearContent(); // error on the next […]

.net MVC:如何仅向授权用户提供静态文件

我的网站上有静态文件,如: http://myurl.com/Content/a.html http://myurl.com/Content/b.html ……等 我想在访问时validation用户的身份validation。 应通过数据库的数据检查身份validation。 我的框架:ASP.NET MVC5

C#异步方法 – 需要帮助

我有一个消耗Web API操作的异步方法。 它似乎陷入了一个循环。 我的理由是因为如果我在catch块的第1行放置一个断点,并且进入,它实际上从未击中第二行。 我最初返回一个包含100,000+(~30mb)行的数据集,并认为由于请求的大小,它可能会很慢,但在更改我的Web API操作以仅返回1行后,问题仍然存在。 当我浏览到Web API解决方案的URI时,肯定会返回数据,我在浏览器中返回了JSON。 public async Task<IEnumerable> GetAll() { try { var response = await _client.GetAsync( string.Format(“{0}/api/document”, _baseURI)); // never hits line below return await response.Content.ReadAsAsync() as IEnumerable; } catch (Exception ex) { // handle exception } } 我不确定我在这里遗失了什么? 一些帮助将不胜感激。 编辑1 在回答一些问题时,我有一个由MVC项目引用的Web API项目。 我必须对JSON反序列化的原始问题进行一些更改。 库: public async Task<IEnumerable> GetAll() { try […]

MVC错误“属于’System.Int32’类型,但必须是’IEnumerable ‘类型。 “

我有这样的模特; public int ID{ get; set; } public string MidName{ get; set; } public string FirstName{ get; set; } public string Surname{ get; set; } 这是我的控制器: public ActionResult Create(){ ViewBag.Names= new SelectList(db.TbName, “ID”, “MidName”); return Viwe(); } 这是我的观点 @Html.LabelFor(model => model.Names, new { @class = “control-label col-md-2” }) @Html.DropDownList(“Names”, String.Empty) @Html.ValidationMessageFor(model => model.Names) 现在,当单击“创建”按钮时,我收到错误消息 `具有键’Names’的ViewData项的类型为’System.Int32’,但必须是’IEnumerable’类型。 […]