Tag: asp.net mvc 4

ASP.NET MVC 4 FileResult – 出错

我在控制器上有一个简单的Action,它返回一个PDF。 工作良好。 public FileResult GetReport(string id) { byte[] fileBytes = _manager.GetReport(id); string fileName = id+ “.pdf”; return File(fileBytes, MediaTypeNames.Application.Octet, fileName); } 当管理器无法获得报告时,我返回null或空byte[] 。 当结果设置为FileResult时,如何与浏览器通信存在问题?

多个彼此了解的授权属性

我有一个非常简单的场景。 我想用自定义授权属性装饰我的控制器/操作。 如果任何属性有效,则应授予授权。 例如, [MyAuth(1)] [MyAuth(2)] public class MyController : Controller { … } 我无法将参数组合到单个授权属性中。 以上示例仅是一个简化示例。 如果任一属性授权用户,我希望用户被授权。 我假设ActionFilterAttribute或AuthorizeAttribute可以看到其他filter已被执行并等待执行,但没有这样的运气。 我怎么能做到这一点? 由于属性似乎没有任何意识,可能是一个HttpModule ? 自定义ControllerActionInvoker ?

对象引用未设置为对象(从View调用Razor模型)

使用C#MVC4 我的看法: @using Universe.Models @model UserModel @section css { } @using (Html.BeginForm(“AddUser”,”Home”, FormMethod.Post)) { Alias: @Html.TextBox(Model.Alias) 我的型号: public class UserModel { public int Id { get; set; } public string Alias { get; set; } public string Email { get; set; } public string Password { get; set; } public bool IsExternal { get; set; […]

MVC 4表单身份validation无法与一起使用

我现在正在学习MVC4,我正在按照Pro ASP NET MVC4第4版的书来创建一个体育商店项目。 我一直在webforms中开发,我试图弄清楚表单身份validation在MVC4中是如何工作的。 这是我取得的成就: Web.Config中 AccountController登录动作: [HttpPost] public ActionResult Login(LoginViewModel model, string returnUrl) { if (ModelState.IsValid) { if (authProvider.Authenticate(model.UserName, model.Password)) { return Redirect(returnUrl ?? Url.Action(“Index”, “Admin”)); } else { ModelState.AddModelError(“”, “Incorrect username or password”); return View(); } } else { return View(); } } 认证提供者: public bool Authenticate(string username, string password) { bool […]

如何使用服务器端将数据发布到MVC4中的外部URL

简单的问题: 现在我在我的观点中有这样的表格: 它发送POST数据并将用户重定向到https://www.xyz.com/xyz/ISO/NewPayment 。 这么简单,但我想在用户被重定向到外部URL之前检查服务器端的数据是否正确。 我怎么能在asp.net MVC中这样做? 如何从服务器端发送POST数据,然后重定向用户? 问候

ASP.NET MVC4:属性参数必须是属性参数类型的常量表达式,typeof表达式或数组创建表达式

我有以下代码: [Required(ErrorMessage = MessageModel.translateMessage(“required”)))] [Display(Name= MessageModel.translateMessage(“id”))] public string user_id { get; set; } 我试图使错误消息动态,但编译时出错: “An attribute argument must be a constant expression , typeof expression or array creation expression of an attribute parameter type.” 解决这个问题的任何方法?

添加到htmlAttributes以获取自定义ActionLink帮助程序扩展

我正在尝试创建一个简单的Html.ActionLink(…)HtmlHelper自定义版本 我想为传入的htmlAttributes匿名对象附加一组额外的属性。 public static MvcHtmlString NoFollowActionLink(this HtmlHelper htmlHelper, string linkText, string actionName, string controllerName, object routeValues, object htmlAttributes) { var customAttributes = new RouteValueDictionary(htmlAttributes) {{“rel”, “nofollow”}}; var link = htmlHelper.ActionLink(linkText, actionName, controllerName, routeValues, customAttributes); return link; } 所以在我看来我会这样: @Html.NoFollowActionLink(“Link Text”, “MyAction”, “MyController”) 我期望它呈现如下链接: Link Text 但相反,我得到: Link Text 我已经尝试了将匿名类型转换为RouteValueDictionary的各种方法,添加到它然后将其传递到根ActionLink(…)方法或转换为Dictionary,或使用HtmlHelper.AnonymousObjectToHtmlAttributes并执行相同但似乎没有工作。

MVC提交按钮未触发

我正在使用带有Razor引擎的ASP.net MVC 4。 我有一个页面(Index.cshtml)和一个控制器(HomeController.cs) 我正在尝试将我的提交按钮连接到我的控制器中的操作结果 – 但是我似乎无法解决它。 我的HTML: @using (Html.BeginForm(“SubmitForm”, “Home”, FormMethod.Post)) { ******lots of other html here******* Save } 我的控制器: public class HomeController : Controller { public ActionResult Index() { ViewBag.Message = “Modify this template to jump-start your ASP.NET MVC application.”; return View(); } public ActionResult About() { ViewBag.Message = “Your app description page.”; […]

openXML spreadsheetdocument返回MVC文件下载的字节数组

我正在尝试将openXML电子表格文档作为byte []返回,然后我可以使用它来允许我的MVC将该文件发送给用户。 这是我的spreadsheetdocument方法返回字节数组 using (MemoryStream mem = new MemoryStream()) { SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument. Create(mem, SpreadsheetDocumentType.Workbook); // Add a WorkbookPart to the document. WorkbookPart workbookpart = spreadsheetDocument.AddWorkbookPart(); workbookpart.Workbook = new Workbook(); // Add a WorksheetPart to the WorkbookPart. WorksheetPart worksheetPart = workbookpart.AddNewPart(); worksheetPart.Worksheet = new Worksheet(new SheetData()); // Add Sheets to the Workbook. Sheets sheets […]

什么时候必须使用FluentValidation?

当dropdownlist值为yes且字段必须为date时,我正在尝试使用FluentValidation validaton。 它是在dropdownlist yes检查date 。 但是当我选择No时也会显示validation,但它仍然表示Must be date 。 如果下拉列表值不是,则不应再validation。 我们怎么能这样做? RuleFor(x => x.DtPublishedTimeText) .NotEmpty() .When(HasMaterialPublishedElseWhereText) .WithMessage(“Required Field”) .Must(BeAValidDate) .WithMessage(“Must be date”); private bool BeAValidDate(string val) { DateTime date; return DateTime.TryParse(val, out date); } private bool HasMaterialPublishedElseWhereText(MeetingAbstract model) { return model.HasMaterialPublishedElseWhereText != null && model.HasMaterialPublishedElseWhereText.Equals(“yes”); }