Tag: asp.net mvc 4

带有自定义标头的MVC重定向

希望对于那里的某个人来说,这是一个简单的问题。 基本上在收到我的MVC控制器的请求后,我想: 在响应中添加“授权”标头 重定向到另一个域上的另一个应用程序 阅读此外部站点的“授权”标题。 它似乎是重定向的行为,剥离了我的所有自定义标题和重定向。 我的问题是,我如何添加新的标头,并执行重定向,并在接收主机[在重定向结束时]的标题中显示该标题?

在特殊类型的Asp.Net Mvc应用程序中保持用户状态的最佳实践

我将尝试解释我的情况和我想做的事情。 没有任何困难和罕见的情况,但我在互联网上找不到任何相关问题或文章。 我在ASP.NET MVC 5上创建了一个Web应用程序。 用户不会直接进入我的应用程序。 用户将输入到CentralInformationSystem.com 。 然后他们必须以支持的方式登录本网站。 登录后,他们将看到一个应用程序列表。 将有允许用于签名用户的应用程序。 其中一个应用程序将是我在Asp.Net MVC开发的应用程序。 而重点是我们的应用程序不会在其他选项卡或当前选项卡中打开等等。 我们的应用程序将在当前选项卡内的大型iframe中打开。 其他要点是我们的应用程序和CentralInformationSystem.com属于其他域。 另一个问题当然是,我现在可以用哪个用户登录 ? 答案是, CentralInformationSystem.com将带有查询字符串的加密数据发送到我们的网站。 例如,URL将如下所示: MyMvcApplication /首页/指数?令牌= jkndid758adsai == qwdbqwiudhqwadoqidwqq = wqdiqw 还要记住,他们总是会发送不同的令牌。 之后,我将解密令牌并找到它属于哪个用户。 还要记住,一个令牌只能使用一次。 1.我的申请是什么类型的申请? 用户将进入非常大的forms。 它实际上可能需要3-4个小时。 所以,我尝试过某种类型的向导逻辑。 输入数据的某些部分后,我会将它们插入数据库,从数据库中获取标识符并将其存储在某个地方并将用户带到下一个级别,依此类推。 2.我想要实现的目标? 我想创建这样的逻辑,一些标识符变量值必须存储在永远不会过期的地方,直到用户关闭浏览器或退出。 我不想将会话超时增加到5-6小时。 3.如果用户在多个选项卡中打开我的应用程序怎么办? 除了2我还有一个问题,用户可以在iframe中打开我的网站多个标签。 我知道,在Asp.net我们可以根据每个选项卡Asp.net会话。 但是,我不想在会话中存储数据,因为用户可以在20分钟或4小时后停止填写表单。 此外,我不能使用cookie,因为所有标签的cookie都是相同的。 我的另一个选择是,为所有视图注入带有加密值的隐藏输入。 但是,我找不到如何自动将这些数据添加到每个视图。 此外,它似乎并不是我最有效的方式。 另一个逻辑是阻止用户使用不同的标记在多个选项卡中打开相同的应用程序。 但是,不要如何实现这一目标。 额外: 我几乎阅读了所有文章和问题/答案。 我知道如何让它发挥作用。 但是,我想要最好的方法。 我的方法都没有效率。

开发与Web表单应用程序一致的自定义身份validation和授权系统

我正在创建一个新的ASP.NET MVC 4应用程序(实际上是我的第一个MVC应用程序),它是我以前的ASP.NET Web表单应用程序的一部分。 我从未在任何项目中使用ASP.NET内置身份validation方法。 这个新的MVC 4应用程序将在以前的应用程序的子域上发布。 登录将从之前的应用程序完成。 如果没有登录,应该从MVC应用程序提供返回URL以返回当前页面。但是,新用户注册,帐户恢复选项已经在以前的Web表单应用程序中开发,我不想在我的新MVC中复制它们应用。 如果成功登录,将从Web表单应用程序发出带有令牌编号的cookie token ,该令牌将共享给所有域,如*.maindomain.com 。 现在我想将自己的令牌validation方法与ASP.NET内置方法合并,以便我可以在新的MVC应用程序中使用Authorize和其他与安全相关的选项。 在我之前的应用程序中,我以下列方式开发了自定义用户validation系统。 首先,我有以下相关的SQL Server表 和以下课程 public class Token { public static uint GenerateToken(string userEmail, string password, bool isPersistent) { // this static function generates a uint type unique token number // and put this in the cookie “token” using HttpContext.Current.Response object. // […]

异步方法中的警告消息说它缺少等待运算符

我在我的asp.net mvc 4应用程序中有一个excel下载。 单击导出按钮时,将调用以下控制器方法。 因为我需要它是异步完成的,所以我在这里使用异步并等待。 public async Task GenerateReportExcel() { ExcelGenerator excel = new ExcelGenerator(); var filePath = await excel.ReportExcelAsync(midyearReportViewModel); System.Web.HttpResponse response = System.Web.HttpContext.Current.Response; response.ClearContent(); response.Clear(); response.ContentType = “text/plain”; response.AddHeader(“Content-Disposition”, string.Format(“attachment;filename={0}.xlsx;”, PdaResource.ReportFileName)); response.TransmitFile(filePath); response.Flush(); response.End(); return PartialView(“_MidYearReportPartial”, midyearReportViewModel); } 此方法调用excel生成器方法ReportExcelAsync,如下所示 public async Task ReportExcelAsync(MidYearReportViewModel _midyearAnnualviewModel) { string fileName = “MidYearReport”; string finalXcelPath = string.Empty; string […]

ASP MVC在部分视图中定义部分

正如标题所述,我想在局部视图中定义一个部分。 我测试过的代码如下: 控制器: public ActionResult Test() { return View(); } public ActionResult PartialTest() { return PartialView(“_PartialTest”); } Test.cshtml: @{ ViewBag.Title = “Test”; } Test @Html.Action(“PartialTest”) _PartialTest.cshtml: partial Test @section scripts { $(document).ready(function() { alert(“Test”); }); } 将部分scripts放在Test.cshtml中可以正常工作,因此问题不在布局中。 有人知道怎么做吗?

MVC DropDownList不从模型中选择值

我已经阅读了这个问题ASP.NET MVC DropDownList没有从模型和答案中选择值,但我不知道我的问题的解决方案。 这是我的看法: @foreach (var adjusterLanguages in Model.adjusterLanguages) { @Html.DropDownListFor(model => Model.adjusterLanguages[i].languageID, (SelectList)ViewBag.ForeignLanguages) @Html.ValidationMessageFor(model =>Model.adjusterLanguages[i].languageID) i++; } 我可以确认正在填充模型数据(来自我的控制器): model.adjusterLanguages = adjLangs; 那么,如何在模型发送到视图时选择项目? 生成的html如下: –Select– Afrikanns Albanian Arabic –Select– Afrikanns Albanian Arabic

EditorFor IEnumerable with TemplateName

假设我有一个简单的模型来解释目的: public class Category { … public IEnumerable Products { get; set; } } 视图: @model Category … @Html.EditorFor(m => m.Products) EditorTemplate: @model Product … @Html.EditorFor(m => m.Name) 请注意,我不必为IEnumerable定义EditorTemplate,我只能为Product模型创建它,而MVC框架足够智能,可以使用自己的IEnumerable模板。 它遍历我的集合并调用我的EditorTemplate。 输出html将是这样的 … 毕竟,我可以发布到我的控制器。 但是,当我使用模板名称定义EditorTemplate时,为什么MVC没有做到这一点? @Html.EditorFor(m => m.Products, “ProductTemplate”) 在这种情况下,我必须将属性的类型更改为IList ,自己遍历集合并调用EditorTemplate @for (int i = 0; i m.Products[i], “ProductTemplate”) } 这似乎是一种肮脏的解决方法给我。 这样做是否还有其他更清洁的解决方案?

Linq加入iquery,如何使用defaultifempty

我有一个linq连接查询wriiten,我想取值,如果其中一个是空的… 码: var Details = UnitOfWork.FlightDetails .Query() .Join ( PassengersDetails, x => x.Flightno, y => y.FlightNo, (x, y) => new { y.PassengerId, y.classType, x.Flightno, x.FlightName, } ); 我想用… “Above query”.DefaultIfEmpty ( new { y.PassengerId, y.classType, string.Empty, string.Empty } ); “FlightDetails”是类上的Idatarepository类型,“PassengerDetails”是可查询的局部变量结果。 如何获得乘客ID和Classtype的结果,并且整体结果中不包含flightno和flightname。

如何在MVC中为国家/地区/省创建选择列表

嗨,我是MVC的新手,甚至是asp .. 我想在MVC中创建一个表单。 在一些例子的帮助下,我能够创建TextBoxes,但是现在我不明白如何创建Select List./ 我尝试了很多在MVC中实现Select List的例子,但我无法理解。 我有一个表格,其中一半用HTML编码,一半用MVC编写。 这是我的代码: using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace MedAvail.Applications.MedProvision.Web.Models { public class AddressViewModel { public string Street1 { get; set; } public string Street2 { get; set; } public string City { get; set; } public string Province { get; set; } public string Country […]

EditorFor()用于复杂类型列表(MVC)

我正在尝试为复杂类型的List创建一个EditorFor()。 具体来说,下面的“选项”应显示在一个多文本输入中,其中每个选项(字符串)都在一个新行中。 但是,我只能在文本框中显示一个选项而不是所有选项…. 我的视图模型和类: public class ItemViewModel { public int itemId { get; set; } [UIHint(“Option”)] public List Options { get; set; } } public class Option { public string Text { get; set; } } 我的编辑模板: EditorTemplates \ Item.cshtml @model ItemViewModel @Html.EditorFor(model => model.Options) EditorTemplates \ Option.cshtml //Not sure how to dispay the options […]