Tag: 模型 视图 控制器

将jQuery数组发送回ac#String Array

我有一个需要String[]数组的C#方法,我使用$.getJSON调用将参数传递给Controller中的Method。 我正在使用已选中的复选框的值并将它们传递回Controller,但是当我使用Stringify它会放置多个值,一起当我将数组传递给它自己时,有多个条目,但接收String[]是空的。 var array = new Array(); $(‘#ids:checked’).each(function() { array.push($(this).val()) } var jsonText = JSON.stringify(array); // I have tried this, but to receive one entry var dataValues = { ids: jsonText, id: $(‘#idNumber’).val(), orderId: $(‘#orderId’).val() }; $.getJSON(“/path/to/method”, dataValues, function(){}); public ActionResult doSomething(String[] ids, Int32 Id, Int32 OrderId) { //do something here } 谢谢您的帮助。

使用JQuery Accordion进行MVCvalidation

我对ASP.NET MVC相对较新,但对validationfunction印象非常深刻。 我有一个巨大的forms,我已经使用JQuery UI分成手风琴。 此表单是模型的一个非常基本的支架,该模型具有如下代码来validation所需的每个字段: [Required(ErrorMessage=”Please Enter a Valid Product”)] [DisplayFormat(ConvertEmptyStringToNull= false)] [StringLength(160, MinimumLength=2,ErrorMessage=”Product Must Be At Least 2 Characters”)] 然后视图只是: @Html.LabelFor(model => model.Product) @Html.EditorFor(model => model.Product) @Html.ValidationMessageFor(model => model.Product) 如果在手风琴中观看该领域,那将非常有用。 如果将该字段留空,则会显示消息,一切都按计划运行。 问题是,当我切换到手风琴中的不同选项卡,并且所需的字段不可见时,我可以提交表单,这让我的服务器感到沮丧。 如果我填写该字段,它会按预期通过。 有办法解决这个问题吗?

在MVC中使用jQuery查找已选中复选框的ID

我有一个Field模型,它代表某个字段(Name,Description,…) class FieldModel : EntityModel { … public bool ToCopy { get; private set; } public string Id {get; private set; } … } 一个Index模型,它有一个Fields集合: class EntityModel { … } class IndexModel { public IEnumerable Fields { get; private set; } } 复制控制器,应接受要复制的字段ID: public void CopyFields(string[] fieldsIds) { … } 我需要通过复选框选择要复制的某些字段。 所以在Field的vew中我添加了 @Html.CheckBoxFor(x => x.IsSelectedForCopy) […]

jQuery Asual地址不断追加网站根文件夹

我有一个MVC站点位于dev和stage的站点上的几个子文件夹中: www.domain.com/site_dev/ www.domain.com/site_stage/ 它最终会在生产中的网站根目录结束,但是当在子文件夹中测试我的网站时,jquery地址会将子文件夹附加到深层链接中,如下所示: www.domain.com/site_dev#! / site_dev /首页/ 我正在使用ajax使用深层链接中的值动态加载面板,但我的面板不会加载,因为它试图调用控制器/ site_dev / home /关于哪个不存在。 我怎么能不这样做呢? 我希望它只是使用: www.domain.com/site_dev#! /首页/关于 我不想在任何地方硬编码值,因此它需要是动态的。 我已经搜遍了所有,但也许我没有使用正确的关键字来实现我的目标。 任何帮助表示赞赏。

将值从Firebase JS回调方法(DAL)返回到另一个函数(控制器)

我一直在研究一个简单的聊天应用程序,它允许用户在简单的群聊中输入消息,并让他们实时更新/显示。 因此我决定使用Firebase,并花了一些时间习惯其Web API。 但是,当我尝试手动创建一个简单的用户身份validation系统,甚至只是将值列表返回给另一个函数时,我遇到了一些问题。 我正在尝试遵循MVC模式,HTML表单触发global.js中的事件处理程序,然后调用控制器文件中的相应方法,然后在DAL中调用适当的方法。 DAL转到远程Firebase并执行请求的操作。 我的问题是,在once事件处理程序触发后,我没有得到任何结果。 控制器将执行checkUserLogin()方法,但不会将任何内容分配给变量loginValid 。 据我所知,从调试开始,执行到达事件处理程序的末尾然后自行删除。 我已经阅读了有关异步JS的一些内容,但并不是真的理解它。 我想要做的就是从Firebase检索一个列表,在将结果从DAL传递给控制器​​之前处理它以进行身份​​validation,然后在控制器中执行结果。 出于这些目的,我不关心实时更新,我有时只想返回Firebase列表中数据的当前快照,并在另一个函数内对其执行操作。 这是我的文件结构(必要时)。 global.js包含事件处理程序,负责处理HTML页面事件并选择适当的控制器操作( security_controller.js ),然后调用必要的DAL操作( security_dal.js )。 global.js $(document).ready(function() { $(“#btnSubmitLogin”).on(“click”, btnSubmitLogin_click); }); function btnSubmitLogin_click() { doUserLogin(); } security_controller.js function doUserLogin() { var username = $(“#txtLoginUsername”).val(); var password = $(“#txtLoginPassword”).val(); //Determine if user is logged in, and react accordingly var loginValid = checkUserLogin(username, […]

HTML Button的jQuery函数遇到了MVC FileResult的问题

我打算让这个函数调用我的MVC动作方法来返回一个CSV报告。 $(function() { $(‘#exportButton’).click(function() { $.get(‘/curReport/GetCSVReport’); }); }); 如果我按下面的代码创建一个按钮,那么当它被点击时,我会看到“打开/保存文件”窗口。 但是,当我更改我的按钮以使用我的jQuery函数时,虽然GetCSVReport() ,但我没有给出“打开/保存文件”窗口。 这是我的GetCSVReport() public FileResult GetCSVReport() { … return fileResult; } 如何使我的jQuery函数像onClick一样工作? 谢谢, 亚伦

将int数组传递给MVC Controller

我正在尝试将一个int数组从JavaScript传递给一个接受2个参数的MVC控制器 – 一个int数组和一个int。 这是执行页面重定向到Controller Action返回的视图。 var dataArray = getAllIds(); //passes back a JavaScript array window.location.replace(“/” + controllerName + “/EditAll?ids=” + dataArray + “&currentID=” + dataArray[0]) dataArray包含1,7个我的样本用法。 控制器代码 public virtual ActionResult EditAll(int[] ids, int currentID) { currentModel = GetID(currentID); currentVM = Activator.CreateInstance(); currentVM.DB = DB; currentVM.Model = currentModel; currentVM.ViewMode = ViewMode.EditAll; currentVM.ModelIDs = ids; if (currentModel […]

从客户端检测到潜在危险的Request.Path值

我完全失去了为什么我收到这个错误。 这个错误的典型原因与尝试将HTML标记提交到文本字符串或类似的东西有关,但我没有做那样的事情。 我认为发生这种情况的页面需要一个简单的电子邮件地址。 这是我的模型validation… public class Subscriber { [Key] [DisplayName(“Email Address”)] [Required(ErrorMessage = “{0} is required”)] [RegularExpression(@”^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})$”, ErrorMessage = “{0} must be a valid email address”)] public string EmailAddress { get; set; } public Guid UnsubscribeKey { get; set; } } 这是我的脚本引用,因为错误似乎在Scripts目录中… 我最好的猜测是有人恶意在电子邮件地址中输入了一些无效的脚本,但我没有看到Elmah或CodeSmith Insight中任何指向我的任何代码的错误。 我甚至无法弄清楚到底发生了什么。 以下是错误…… 从客户端(:)检测到潜在危险的Request.Path值。 (/NewsList/Scripts/,data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}), i.html(克) System.Web.HttpException(0x80004005):从客户端(:)检测到潜在危险的Request.Path值。 System.Web.HttpApplication.PipelineStepManager.ValidateHelper(HttpContext context)中的System.Web.HttpRequest.ValidateInputIfRequiredByConfig() 在System.Web.HttpApplication + PipelineStepManager.ValidateHelper(HttpContext […]

动态启用/禁用mvc服务器端validation

我有一个带有多个提交按钮的mvc表单 – “保存草稿”和“发布”。 目标是在单击“保存草稿”按钮并提交表单时跳过客户端(javascript / unobstructive)validation和服务器端validation。 但是如果单击“发布”按钮,我确实需要触发两次validation。 我的研究使我几乎没有解决方案。 客户端 – 通过编写jquery插件 (function ($) { $.fn.turnOffValidation = function (form) { var settings = form.validate().settings; for (var ruleIndex in settings.rules) { delete settings.rules[ruleIndex]; } }; })(jQuery); 并调用它 $(‘#btnSaveDraft’).click(function () { $(this).turnOffValidation(jQuery(‘#myForm’)); }); 服务器端 –但对于服务器端,我能找到的唯一解决方案是从ModelState中删除错误。 我在Action Attribute中完成了它,因此它可以重用并且易于使用。 [AttributeUsage(AttributeTargets.All)] public class IgnoreValidationAttribute : ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext […]

拆分路径名以获取路由参数

我在我的应用程序中使用mvc和jquery我有这样的路由URL: ID/Controller/Action 我想获取URL并将其拆分以获取jquery中的id