我在控制器上有一个简单的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 ?
使用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; […]
我现在正在学习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 […]
简单的问题: 现在我在我的观点中有这样的表格: 它发送POST数据并将用户重定向到https://www.xyz.com/xyz/ISO/NewPayment 。 这么简单,但我想在用户被重定向到外部URL之前检查服务器端的数据是否正确。 我怎么能在asp.net MVC中这样做? 如何从服务器端发送POST数据,然后重定向用户? 问候
我有以下代码: [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.” 解决这个问题的任何方法?
我正在尝试创建一个简单的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并执行相同但似乎没有工作。
我正在使用带有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电子表格文档作为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 […]
当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”); }