Tag: asp.net mvc 4

使用AzureReader2插件的Azure ImageResizer没有resize

编辑 我让它工作,但我不得不添加RemoteReader插件。 当我从我的项目中删除AzureReader2插件时它仍然有效,但是AzureReader2插件有什么好处呢? 原始问题 我已经完成了这里概述的所有内容(包括评论),但似乎无法弄清楚为什么我无法使用此imageresizer插件动态调整图像大小。 这是我在元素下的web.config条目: <add name="AzureReader2" prefix="~/img/" connectionString="DefaultEndpointsProtocol=https;AccountName=[Account];AccountKey=[key]" endpoint="http://.blob.core.windows.net/” /> 我已经将我的容器设置为’img’。 当我转到此URL进行测试时: https://.blob.core.windows.net/img/image.jpg?width=50图像显示但只是常规大小。 我也试过在本地运行这个和现场AWS但仍然没有resize:(

使服务层可以访问对象,而不在MVC4应用程序中作为参数传递

我正在构建一个多租户MVC应用程序,其中有一个应用程序池和单个数据库。 我有一个租户表,我的每个模型都有一个TenantId标识。 每个租户都有一个字符串“Url”,用于标识用于访问该租户数据的完整URL。 我可以通过以下(粗略近似)从我的BaseController访问它: HttpRequest request = HttpContext.Current.Request; Uri requestUrl = request.Url; _tenant = _tenantService.GetTenantByUrl(requestUrl); 现在,我需要将租户传递到服务层以执行业务逻辑。 我可以这样做的一种方法是跨所有服务(约200种方法)查看每个方法并添加一个Tenant参数。 我必须触及每个服务层的调用 ,以及每个服务层方法 。 这样可以工作,但这很繁琐并且使代码混乱。 例如,我以前的一种方法: public void DeleteUserById(int userId) { using (var db = CreateContext()) { var user = db.Users.FirstOrDefault(u => u.UserId.Equals(userId)); InternalDeleteUser(db, user); } } 之后(如果我通过租客): public void DeleteUserById(Tenant tenant, int userId) { using (var db = […]

我的控制器中的非静态字段,方法或属性需要对象引用

可能重复: 非静态字段,方法或属性需要对象引用 我有一个非静态字段: private IDictionary _mappings = new Dictionary(StringComparer.InvariantCultureIgnoreCase) 我想在这样的动作中使用: public static string GetMimeType(string extension) { //… return _mappings.TryGetValue(extension, out mime) ? mime : “application/octet-stream”; } 编译器抱怨: return语句中的非静态字段,方法或属性需要对象引用。 我该如何参考这个字段?

ASP.NET MVC 4 – 401访问被拒绝

我用一个get命令创建了一个非常简单的WebAPI,只返回一个整数。 当我在浏览器中运行它时,它工作得很好。 但是当我尝试从解决方案中的另一个项目有问题地访问时,我得到以下内容: 2013-05-15 17:46:47,811 – 响应:StatusCode:401,ReasonPhrase:’Access Denied’,版本:1.1,内容:System.Net.Http.StreamContent,Headers: { 日期:2013年5月15日星期三16:46:47 GMT 服务器:Microsoft-IIS / 5.1 WWW-Authenticate:谈判 WWW-Authenticate:NTLM 连接:关闭 内容长度:4431 内容类型:text / html } 这是我正在使用的代码。 真的很感激任何帮助。 var client = new HttpClient { BaseAddress = new Uri(_uri) }; client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(“application/json”)); var response = client.GetAsync(string.Format(“api/Config/{0}”, id)).Result; if (response.IsSuccessStatusCode) { var res = response.Content.ReadAsAsync().Result; return res; }

使用浏览器后退按钮注销问题

我使用ASP.Net MVC 4创建了登录/注销function。我使用自己创建的表单来针对Active Directory对用户进行身份validation。 它的function很好。 安全问题仍然存在很大问题。 用户单击注销链接后,他/她已成功注销并重新定向到登录表单。 控制器中的代码如下所示。 public ActionResult Logout() { // Tried to include below 3 lines in _Layout.cshtml as well. But not identifying. Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1)); Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache); Response.Cache.SetNoStore(); Session.Abandon(); return RedirectToAction(“Login”); } 但是,一旦点击浏览器后退按钮,用户就可以返回到其他页面并浏览页面。 我通过几种解决方案,不同的方法,但没有解决。 似乎MVC方法与ASP.NET表单有很大不同。 感谢你对此的帮助。 (我希望使用C#/ MVC方式解决这个问题。在注销时不使用JavaScript来禁用/关闭浏览器。) 更新:代码片段 [HttpPost] public ActionResult Login(LoginModel authUser) { // Call Helper to get LDAP info. Will return […]

在mvc4中的Global.asax中的会话超时重定向

我试图检测会话何时结束,然后在我的全局asax文件中完成此操作后将用户重定向到主页。 我使用下面的代码,我在这里找到 Global.asax中: protected void Session_Start() { if (Context.Session != null) { if (Context.Session.IsNewSession) { string sCookieHeader = Request.Headers[“Cookie”]; if ((null != sCookieHeader) && (sCookieHeader.IndexOf(“ASP.NET_SessionId”) >= 0)) { //intercept current route HttpContextBase currentContext = new HttpContextWrapper(HttpContext.Current); RouteData routeData = RouteTable.Routes.GetRouteData(currentContext); //Substitute route Data Token Values for the Area routeData.DataTokens[“area”] = “”; routeData.DataTokens[“UseNamespaceFallback”] = true; //substitute […]

创建帮助程序以覆盖CheckboxFor

我在我正在开始的新项目中使用bootstrap 5,而不是必须在表单字段周围编写所有脚手架,我已经决定创建一个包装器来自动为我执行此操作。 我使用了textboxfor,textareafor和dropdownlist的以下语法: public static MvcHtmlString MyTextBoxFor( this HtmlHelper helper, Expression<Func> expression) { var stringbuilder = new MvcHtmlString(“” + helper.LabelFor(expression, new {@class = “col-sm-3 control-label”}) + “” + helper.TextBoxFor(expression, new {@class = “form-control”}) + “” + “”); return stringbuilder; } 然后可以如下调用: @FormHelpers.MyTextBoxFor(Html, x => x.Name) 但是,这似乎不适用于checkboxfor: Error 1 ‘System.Web.Mvc.HtmlHelper’ does not contain a definition for […]

entity framework抛出错误“无法评估表达式。 操作不受支持。 未知错误:0x80070057。“

我正在使用Entity Framework来获取数据库数据。 我写了一个以JSON格式返回表数据的动作,如下所示: public JsonResult GetEmployeesData() { using (TrainingDBEntities db = new TrainingDBEntities()) { return new JsonResult { Data = db.Employees, JsonRequestBehavior = JsonRequestBehavior.AllowGet }; } } 它没有抛出任何exception。 但是出现了错误代码的控制台错误:500。当我调试时,它显示错误 function评估需要运行所有线程 当我尝试重新加载时,会发生新的错误: 无法评估表达式。 操作不受支持。 未知错误:0x80070057 我不知道这段代码有什么问题吗?

如果在Code First模式下使用,使用T4模板为Database First和Model First开发生成的代码可能无法正常工作

我在我的asp.net MVC 4应用程序中使用entity framework工作。 我有一个edmx文件。 我试图使用这个EF模型中的实体来填充像这样的视图模型: using (var context = new VehiclesContext()) { IEnumerable vehicles = context.Vehicles.Select(x => new SearchedVehicles { Year = x.Year, Make = x.Make, Model = x.Model, Mileage = x.Mileage, VIN = x.VIN }); return View(vehicles); } Vehicle是edmx中的实体,其中SearchedVehicles是viewmodel但是我得到了这个exception: Code generated using the T4 templates for Database First and Model First development may […]

始终选择项值为0的DropDownListFor

我有一个问题,让asp.net和剃刀引擎创建一个选择了正确元素的下拉列表。 无论我尝试什么,如果其中一个值为“0”,将始终选择该项目。 我想要创建的是一个选择从-2到2的评级,0是中间值,但不应该预先选择。 应强制用户做出决定,因此defualt值应为空。 使用选项标签创建下拉列表,如下面的代码所示,不会将默认值保留为空。 例如,如果值为1-5,则这将起作用。 @Html.DropDownListFor(model => model.Rating, new SelectList(new List() { new SelectListItem() {Text = “-2”, Value = “-2”}, new SelectListItem() {Text = “-1”, Value = “-1”}, new SelectListItem() {Text = “0”, Value = “0”}, new SelectListItem() {Text = “1”, Value = “1”}, new SelectListItem() {Text = “2”, Value = “2”} }, “Value”, […]