我有一个asp.net mvc 4 Web应用程序,必须兼容IE 7到IE 10然后根据IE使用我有一些脚本版本(jquery等)的问题所以在我的根脚本文件夹我创建了一个新文件夹名为OlderIE。 使用IE 7时,我希望加载OlderIE文件夹中的脚本。 当使用IE> 7时,我想要加载Scripts根文件夹中的脚本。 那怎么办呢? 与此相关,是否可以在我的asp.net mvc 4项目中安装不同版本的脚本(jQuery,jQuery不引人注意等)并根据IE版本使用它们? 更新 :我想要这个因为我在使用IE> = 8时使用jquery-1.9.1及其所有依赖项但它在IE 7中不起作用所以当使用IE 7时我使用jquery-1.6.4及其依赖项(jquery)不引人注意的等等)。 所以我想知道如何做到这一点。 在同一个Project中是否可以安装多个版本的jquery,jquery unobtrusive等? 如果是这样,如何执行此操作以及如何根据所使用的IE加载正确的?
使用ASP.NET MVC 4和NuGet来管理包。 通过NuGet升级到jQuery 1.9.1后,我开始在jQuery 1.9.x删除有关删除live()函数的JavaScript错误。 我点击F5从VS.NET运行调试模式,进入登录页面,得到以下信息: 发现这个StackOverflow答案: https : ~\Scripts\jquery.unobtrusive-ajax.js进行了4次更改。 我的~\Scripts\jquery.unobtrusive-ajax.js : $(document).on(“click”, “a[data-ajax=true]”, function (evt) { … }); $(document).on(“click”, “form[data-ajax=true] input[type=image]”, function (evt) { … }); $(document).on(“click”, “form[data-ajax=true] :submit”, function (evt) { … }); $(document).on(“submit”, “form[data-ajax=true]”, function (evt) { … }); 我还物理删除了jquery.unobtrusive-ajax.min.js并使用WebGrease 1.3.0从我更新的~\Scripts\jquery.unobtrusive-ajax.js重新生成它。 但是,出于某种原因,我对不使用.live()函数的更改并没有停留。 我试图阻止VS.NET运行MVC应用程序的IIS Express 8.0网站(localhost:63798)。 在尝试再次以调试模式运行F5之前,还尝试执行Build-> Clean Solution,Build-> Rebuild Solution。 如果有人以前经历过这个并且有任何见解,我将非常感激。 […]
如果我没有引用jquery.unobtrusive-ajax.js我可以在Post上获得附件。 如果我引用它它会给我null。 @using (Ajax.BeginForm(“Index”, “ContactSubmission”, new AjaxOptions{ InsertionMode = InsertionMode.Replace, HttpMethod = “POST”, OnSuccess = “updateSuccess” }, new { enctype = “multipart/form-data”,@class = “form-horizontal”, role = “form” })) { ///code here } [HttpPost] public JsonResult Index(Contact contact) { if (ModelState.IsValid) { if (contact != null) { string attachment = string.Empty; // HttpPostedFileBase Attachment if (contact.Attachment […]
我的控制器创建了这样的链接列表 @foreach (var item in Model.MenuItems) { @Ajax.ActionLink(item.Caption, item.ActionName, item.ControllerName, new AjaxOptions { UpdateTargetId = “pageBody”, OnBegin = “BeginUpdatePage”, OnComplete = “EndUpdatePage”, OnFailure = “FailUpdatePage” }) } 我有一些像这样的JavaScript function BeginUpdatePage() { $(“#MainMenu li”).removeClass(‘selected’); $(this).parent().addClass(‘selected’); $(“#pageBody”).fadeTo(‘slow’, 0.5); } function EndUpdatePage() { $(“#pageBody”).fadeTo(‘slow’, 1); } function FailUpdatePage() { alert(‘There has been an error loading this page please […]
我正在尝试使用实现可选的客户端validation ASP.NET MVC 4, 不引人注目的jQueryvalidation, 不引人注目的ajax 这很好用 下面的图片显示了我对可选的客户端validation的意思:我的表单上唯一一个字段应该包含电子邮件,因此附加了一个电子邮件validation器。 现在我们点击保存。 由于我们的文本“name @ doamin”不是有效的电子邮件,因此会显示validation摘要。 与validation摘要一起,我们取消隐藏“无论如何”保存按钮。 第二个按钮是一个普通的提交按钮,只有class=”cancel” 。 这指示jQuery.validate.js脚本在使用此按钮提交时跳过validation。 以下是视图的代码段: @using (Html.BeginForm()) { * @Html.ValidationSummary(false, “Still errors:”) } 一切正常。 问题 如果我切换到Ajax表单,第二个提交按钮 – “仍然保存”按预期停止工作。 它的行为与正常行为相同,并且在validation成功之前阻止提交。 以下是“ajaxified”视图的代码段: @using (Ajax.BeginForm(“Edit”, new { id = “0” }, new AjaxOptions { HttpMethod = “POST”, InsertionMode = InsertionMode.Replace, UpdateTargetId = “ajaxSection”, })) { * […]
可能重复: jQuery 1.7 – 将live()转换为on() //解决方案:我只是简单地替换了四个事件,如建议的批准答案和不显眼的ajax插件已启动并再次使用jquery 1.9.0 更新//观察底部标记答案的注释,这是解决此问题的最佳方法。 //原帖:我升级到jQuery 1.9.0,但随后他们弃用了live方法,因此不引人注意的ajax插件崩溃了。 我尝试更换它,因为升级为我修复了另一个错误。 但是,它不起作用。 我只是简单地用以下方式取代了: $(“a[data-ajax=true]”).on(“click”, function (evt) { evt.preventDefault(); asyncRequest(this, { url: this.href, type: “GET”, data: [] }); }); $(“form[data-ajax=true] input[type=image]”).on(“click”, function (evt) { var name = evt.target.name, $target = $(evt.target), form = $target.parents(“form”)[0], offset = $target.offset(); $(form).data(data_click, [ { name: name + “.x”, value: Math.round(evt.pageX […]