Tag: asp.net mvc 4

Where子句有多个未知条件

我目前正在为我的公司开发员工管理系统。 字段可能会有所不同,并且会不时更改,因此我为每个字段设置了一个界面,如下所示: public interface IStaffInfoField { // … IQueryable Filter(IQueryable pList, string pAdditionalData); // … } 对于每个字段,我实现Filter方法,例如使用Name : class NameStaffInfoField : BaseStaffInfoField { // … public override IQueryable Filter(IQueryable pList, string pAdditionalData) { return pList.Where(q => q.Name.Contains(pAdditionalData)); } // … } 现在用户想要使用多个条件进行搜索,这很简单,我只需遍历列表并调用Filter 。 但是,他们还需要OR条件(例如,名称为A ,OR名称为B ,AND部门名称为C ,或年龄为30员工)。 注意:用户是最终用户,他们通过combobox和文本框输入搜索查询。 我能以某种方式修改我的模式或lambda表达式吗? 因为在整个过程中,我没有将原始列表保存为Union它的OR条件。 我认为如果我保存表达式并将其联合为OR条件将会很慢。 我现在能想到的唯一解决方案是为需要原始SQL WHERE语句的接口添加一个方法。 但是我的整个程序还没有使用纯SQL查询,现在使用它是不是很糟糕?

ServiceBus抛出401 Unauthorized Error

我正在使用Windows Service Bus 1.0 Brokered消息传递的简单实现来跟踪用户与特定Web应用程序的交互。 每次将某些内容保存到数据库中的“敏感”表时,我都会设置存储库层,发送如下消息: ServiceBus.MessageQueue.PushAsync(entity); 然后将序列化实体并从中创建消息。 我的MessageQueue类是这样的。 public static class MessageQueue { static string ServerFQDN; static int HttpPort = 9355; static int TcpPort = 9354; static string ServiceNamespace = “ServiceBusDefaultNamespace”; public static void PushAsync(T msg) { ServerFQDN = System.Net.Dns.GetHostEntry(string.Empty).HostName; //Service Bus connection string var connBuilder = new ServiceBusConnectionStringBuilder { ManagementPort = HttpPort, RuntimePort […]

在类中使用UserProfile外键在MVC 4中创建新的配置文件

我正在尝试创建一个使用内置MVC用户配置文件作为身份validation方法的基本网站。 我正在使用MVC4.0和Entity Framework。 我有一个主数据类,它使用UserProfile模型作为外键。 该类是“游戏”类,用于将游戏与特定用户相关联。 我还在UserProfile类中添加了另一个成员,作为此项目的必需品。 每当我尝试添加一个新游戏时,其中有一个用户的配置文件作为外键,服务器最终会完全创建一个新的用户配置文件,即使我专门制作它以便它是同一个用户。 作为尝试解决此问题的一部分,我将Game对象添加到用户配置文件DbContext,但这根本没有帮助,而且每次我将新游戏插入数据库时​​我仍然会创建新用户。 我的模型如下: public class Game { public int ID { get; set; } [ForeignKey(“UserId”)] public virtual UserProfile Profile { get; set; } public int UserId { get; set; } } [Table(“UserProfile”)] public class UserProfile { [Key] [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] public int UserId { get; set; } public string UserName { […]

.Net MVC4文化设置正确,但validation仍然是英文

我有一个非常基本的.MVC网站,它使用丹麦语。 我可以在页面的开头设置文化: @{ Layout = null; Culture = “da-DK”; } 但它已经是正确的,所以我怀疑它是否重要。 然后我有我的输入字段: @Html.EditorFor(model => model.Price) 它是模型中的小数。 然后我有提交按钮 我不知道它是否重要,但我使用相同的局部视图进行编辑和创建,但文化在内部视图中也是正确的。 当我在价格字段中插入5,60时,它会抱怨并说它应该是一个数字。 我错过了什么? (如果之前有人问我,我很抱歉,我真的找不到它。)

MVC Web API:URL参数值中的点

我已经实现了搜索function,以查找具有(部分)代码作为搜索条件的数据,其中包括a。 (点)在值中,因此应该可以在搜索条件中包含该值。 考虑url: myhost/api/search/88. 开箱即用,没有做任何额外的事情,这将导致404错误。 虽然,毫不奇怪,如果我删除点,url工作正常。 我发现这是StackOverflow的可能答案: 题 这样就可以了,但我不确定这是否是最佳解决方案。 我的意思是,如果它是无害的,那么有一个放松的url机制是好的,但是我不希望遇到其他可能比我现在想要的点造成更多伤害的字符。 也许我正在为这个修复打开地狱之门…… 我可以相信这个解决方案还是有更安全的替代方案?

VS2013 ASP.NET MVC单页面应用程序模板自动重定向

ASP.NET中的默认SPA模板在Visual Studio 2013中为我们提供了默认的网站模板。 但是,此模板不允许查看/ Home / Index页面并自动重定向到/ Account / Login。 现在,我确实想要使用这个不错的function,但不是在我的主页上。 我尝试过以下方法: 注释掉Authorize属性 逐个添加AllowAnonymous,OverrideAuthentication等。 //[Authorize] [AllowAnonymous] [OverrideAuthentication] public class HomeController : Controller { [OverrideAuthentication] [AllowAnonymous] public ActionResult Index() { return View(); } } 但它仍然将我重定向到 http://example.com:49838/Account/Login?ReturnUrl=%2FAccount%2FAuthorize%3Fclient_id%3Dweb%26response_type%3Dtoken%26state%3D 每当我去 http://example.com:49838/Home/Index 我怎么能防止这种情况?

发布的Azure Web角色中的CSS图标生成内容出现问题

我有一个MVC4 Web应用程序,我正在尝试将其作为Azure Web角色发布。 该网站正在使用Metro UI CSS 。 总体而言,已发布的Web角色正在按预期运行,但我遇到的问题是CSS生成的内容。 例如,Metro UI modern.css中的图标的以下代码段: .metrouicss .icon-arrow-right-3:before { content: “\e09d”; } 生成的内容对应于相关字体文件中的以下字形: 在本地运行应用程序时,以及在本地运行云模拟器时,这些图标css类的使用可以正常工作: 但是,发布的版本未显示图标图像: 在Web项目中,图标字体文件是构建操作内容(不要复制),就像css文件一样。 Azure Web角色是否需要任何特定的配置设置来发布和/或识别生成的内容? 或者其他一些提示,找出发布的实例上出了什么问题?

IRouteConstraint MVC4上的HttpContextBase.Session和HttpContext.Current.Session都为null

我无法在我的自定义RootConstraint类上访问Session,它被设置为null。 我搜索过但无法找到解决方案。 public class AdminRootConstraint : IRouteConstraint { public bool Match ( HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection ) { if ((string) values[“controller”] == “Login”) return true; return HttpContext.Current.Session != null && (bool)HttpContext.Current.Session[“IsAuthorized”]; } } 编辑 以下是httpContext参数在即时窗口中的外观。 可以提出一个想法。 httpContext {System.Web.HttpContextWrapper} [System.Web.HttpContextWrapper]: {System.Web.HttpContextWrapper} AllErrors: null AllowAsyncDuringSyncStages: false Application: {System.Web.HttpApplicationStateWrapper} ApplicationInstance: {ASP.global_asax} AsyncPreloadMode: […]

Helper方法生成小型HTML代码段

我正在使用ASP.NET MVC将我的HTML视图与我的模型分开。 然而,有一个特定的情况令我感到困惑。 我有几个常用的小面板信息,它们本身由一些较小的信息板组成。 这些数据来自各种模型中包含的子类,有时是单个实例,有时是对象列表。 目前,这是使用部分视图完成的,通过模型参数传递适当的数据,如下所示: @Html.Partial(“UserInfo”, this.Model.CurrentUser); @Html.Partial(“UserInfo”, reply.PostedBy); 等等。 一切正常。 我最近达到了一个要求,感觉它延伸了这个模型的明显限制 – 但它将涉及非常大量的部分视图,每个部分视图中有少量的HTML,嵌套了很多次。 页面解析时间似乎开始有点失控,我怀疑搜索和反映部分视图的数量可能与它有关。 请注意:我假设重复的HTML应该是相同的仍然是要避免的。 我可以通过在一些更高级别的控件中使用HTML副本来简化嵌套,但是这会让我觉得这会损害可维护性。 对于最内层的人来说,创建生成并返回所需HTML的静态帮助程序类似乎更有意义 – 但是,尽管事实上MVC本身使用Html帮助程序类,但感觉这与MVC相反图案。 是否可以使用静态帮助程序类生成小型HTML代码段? 静态UserInfo类应该去哪里? 看法? 控制器? 别处? 显然,这种方法仍然将辅助方法与模型分开,但是由于需要使用模型,我并不真正看到它实际上是如何解耦的。 静态助手是一种远离扩展方法的头发宽度,可以在userInstance.InfoHtml()类型的方式中使用,这似乎使整个方法非常类似于仅将辅助方法添加到模型中。 这当然是MVC首先想要摆脱的! 请注意:我不是想绕过规则或抱怨! 我只想尽可能地将其视为“on pattern”。 如果有很多很多局部视图的话,我会尽我所能坚持这个和性能调整。

“SaveChanges()”方法出错

我正在使用Oracle数据库和ASP.net MVC4创建应用程序。 尽管代码中似乎没有问题,但调用SaveChanges()方法会导致此处显示错误: 此图像显示内部exception和相关详细信息 这是我为保存更改所做的实现 if (ModelState.IsValid) { ModelState.Clear(); using (SSP_Entities database = new SSP_Entities()) { database.REQUEST_TAB.Add(c_modal.Request_tab); database.SaveChanges(); caseID = c_modal.Request_tab.CASE_ID; return RedirectToAction(“NewEnv”, cpe); } } 我在视图中使用以下代码 model.request_tab.ROWVERSION, new { @Value=”date”}) %> model.request_tab.CASE_ID, new { @Value=100}) %> model.request_tab.REQUEST_BY, new { @Value=”PUSNLK”}) %> model.request_tab.REQUEST_ID, new { @Value=334}) %> model.request_tab.REQUEST_TYPE, new { @Value=”CPE”}) %> model.request_tab.STATE, new { […]