Tag: asp.net mvc

如何通过.NETvalidationxml代码文件? +如果我使用XML序列化,我该怎么做?

我希望用户能够将数据导出为XML文件。 当然,我希望他们以后能够导入相同的XML文件,但是他们总是可以更改它,或者它可能是不同的XML文件。 所以我想validationXML文件以检查它是否采用我期望的格式。 所以我想我需要像模式一样来检查它必须通过代码。 所以,如果我期待 我不希望其他格式在文件中,而不是我期望的格式。 另外我如何validation字段? 就像说我要求标签之间必须有一些文字。 如果为空,则文件无效。 那怎么能这样呢? 编辑 我决定使用XML序列化,所以我知道如果格式错误并且忽略不起作用的东西,它将通过exception。 但是我不确定我是否应该通过它和C#来validation每个记录,或者我应该尝试制作一个xml架构来完成它。 如果我想通过xml序列化的xml架构来实现它将如何工作? 就像我首先做的事情,就像我在回复中看到的那样然后去序列化它? 或者我该怎么做?

MVC4从服务器回调客户端

我正在使用ASP.NET MVC 4应用程序,我需要通过从Controller向客户端发送消息来在客户端中显示消息。 我需要将文件上传到Server并在Foreach循环中执行一些处理,并且每次foreach我都需要在UI中显示消息。 目前我对循环我需要在这种情况下在每个for循环上从服务器发送消息到客户端 视图 @using (Html.BeginForm(“Index”, “Home”, FormMethod.Post, new { id = “formUpload”, enctype = “multipart/form-data” })) { Upload File @ViewBag.Message } 控制器代码 [HttpPost] public ActionResult Index(HttpPostedFileBase file) { if (file != null) { var fname = Path.GetFileName(file.FileName); var exis = Path.Combine(System.Web.HttpContext.Current.Server.MapPath(“~/Storage/uploads”), fname); if (System.IO.File.Exists(exis)) { ViewData[“Message”] = “The file ” + fname […]

使用属性的名称构建OrderBy表达式

我试图通过MVC3中的WebGrid控件来支持排序,MVC3通过sort参数将模型上的属性名称传递给我的操作。 public class Agent { public int Id { get; set; } public string Name { get; set; } } [HttpGet] public ActionResult Index(string sort = “Id”, string sortdir = “ASC”) { // Define the parameter that we are going to use in the OrderBy clause. var param = Expression.Parameter(typeof(Agent), “agent”); // Now we’ll make […]

禁用所有操作的浏览器缓存,但保留捆绑包

在我正在处理的MVC应用程序中,出于安全原因,我们不得不在所有操作上阻止浏览器缓存(防止用户在注销后返回历史记录)。 我们使用此解决方案实现了此目 但是,我们确实希望允许浏览器缓存css和js包。 不幸的是,上面提到的解决方案似乎阻止了所有资源的缓存。 在本地机器上,它甚至包括静态文件,如图像,但在远程服务器上IIS处理这些文件(而不是应用程序本身),这样就不用担心了。 无论如何,是否有一些方法可以调整此解决方案以允许浏览器缓存捆绑包? 我知道我可以使用像这样的filter并将其添加到所有操作(甚至更好,所有控制器)或添加一个新的基本控制器,默认情况下具有此filter,并将我的所有控制器设置为inheritance它,但有没有更好的选择(不涉及更改项目中的无数文件)? PS写完这个问题让我想到了一些我必须尝试的解决方案。 这件事发生在我之前。 我的意思是,在这里写一个问题时找到正确的答案,但我最后没有发布这些问题。 在写这个问题时我觉得的解决方案非常简单。 只需在Application_BeginRequest写一个简单的if条件,以确定资源是否应该是可缓存的,基于请求url …我还没有测试它,但听起来它可能只是做这项工作。

第二次调用相同的DbContext导致错误’DbContext已被处置’

我想做什么 public void SomeTestMethod(){ var person = this.PersonManager.Get(new Guid(“someguid”)); person.Lastname = “Jameson”; this.PersonManager.Save(person); // This goes wrong } 哪里出错了 上面的save方法调用此代码: protected void Add(T source, MyEntities context, bool isNew) where T : class { if (isNew) { context.Set().Add(source); } else { var entry = context.Entry(source); if (entry.State == EntityState.Detached) { context.Set().Attach(source); entry.State = EntityState.Modified; } } […]

在Web API中使用ExceptionFilterAttribute

我试图在创建的Web API中实现error handling,需要以JSON格式返回exception详细信息。 我创建了BALExceptionFilterAttribute之类的 public class BALExceptionFilterAttribute : ExceptionFilterAttribute { public override void OnException(HttpActionExecutedContext actionExecutedContext) { base.OnException(actionExecutedContext); actionExecutedContext.Response = actionExecutedContext.Request.CreateResponse(HttpStatusCode.BadRequest, new { error = actionExecutedContext.Exception.Message }); } } 并在Gloal.asax.cs中注册了它们 GlobalConfiguration.Configuration.Filters.Add(new BALExceptionFilterAttribute()); 在我的控制器中,我想抛出exception [HttpGet] [BALExceptionFilter] public HttpResponseMessage Getdetails(string ROOM, DateTime DOB_GT) { if (string.IsNullOrEmpty(ROOM) { return Request.CreateResponse(new { error = “Input paramete cannot be Empty or […]

如何将ASP.NET MVC应用程序读取权限授予注册表项?

我已经阅读了有关如何实现这一目标的其他post,但无济于事。 当我将我的应用程序部署到服务器(2008)时,我在运行时收到以下exception: Access to the registry key ‘HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\TeamFoundation\Servers’ is denied. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.UnauthorizedAccessException: Access to the registry key ‘HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\TeamFoundation\Servers’ is denied. ASP.NET is not […]

Google跟踪代码管理器服务器端跟踪.NET

我们需要从服务器端推送来自.Net(C#)应用程序的数据层,触发事件等。 Google跟踪代码管理器具有JavaScript,Android和iOS SDK。 它还具有REST API,但此API仅允许管理容器,标记和事件,但不允许跟踪它们。 那么可以实现GTM的服务器端跟踪吗? 似乎应该是因为存在适用于移动设备的SDK,它应该没有太大的区别。 如果可能,那么请告诉我们如何以及可能存在API或.Net的SDK将来存在或计划。 也许我们必须将数据直接推送到Google Analytics和其他终端? 我可以看到JavaScript SDK将数据直接从页面推送到GA。

JsonConvert.DeserializeObject特殊字符未终止字符串。 预期分隔符:

出于某种原因,当我在我的淘汰模型中有一个特殊字符并将其转换为json对象时,字符串将结束特殊字符所在的位置,并且在反序列化时出现错误: $.ajax({ url: “/Admin/Forms/Convert”, type: “post”, //contentType: “application/json”, dataType: “text”, data: “modelData=” + ko.toJSON(theModel), success: function (data) { // window.open(“/Admin/Forms/DisplayClient”); var win = getFullWindow(‘/Admin/Forms/DisplayClient’); win.open(); }, error: function (xhr, status, msg) { alert(msg); } }); 当我得到这个方法: public void Convert(string modelData) { Form form = JsonConvert.DeserializeObject(modelData); } 我收到一个错误: Unterminated string. Expected delimiter: “. Path ‘Name’, line […]

服务器未返回状态码为400(.net)的JSON

我有一个奇怪的问题,返回400状态代码与json错误。 在我的控制器中,我有类似的东西: if(!ModelState.IsValid) { string[] errors = ModelState.Values .SelectMany(x => x.Errors) .Select(x => x.ErrorMessage).ToArray(); Response.StatusCode = (int)System.Net.HttpStatusCode.BadRequest; return Json(new { success = false, errors = errors }, JsonRequestBehavior.DenyGet); } 这在我的开发机器上工作正常。 我可以在ajax错误方法中得到错误。 但是当我部署到服务器时,服务器不再返回JSON。 我总是得到responseText而不是reponseJSON。 如果我删除Response.StatusCode它工作正常。 这让我相信当我设置Response对象的StatusCode属性时,函数’返回’。 这有发生在其他人身上吗? 有人知道解决方案吗?