Tag: asp.net mvc 3

客户端validation不使用重用和嵌套的复杂属性

我有一个asp.net MVC 5应用程序,我尝试在.cshtml文件中的不同位置重用嵌套的复杂视图模型类。 重用的复杂视图模型被命名为具有许多属性的SchoolPersonViewModel ,并且Phone和Email属性被validation为“如果未提供电话,则必须提供电子邮件。如果提供电话,则电子邮件是可选输入”。 我写了一个自定义服务器和客户端validation,但它适用于服务器端。 但是客户端validation工作不正常。 例如,即使填充了关联的Phone文本框,也会提示填写Email文本框。 请参阅附件。 例如。 请帮忙。 先谢谢你了。 我知道问题来自错误:3个电子邮件文本框有3个validation属性,其值与data-val-emailrequired-stringphoneprop=”Phone” 。 运行时的Phone值导致jQueryvalidation机器的歧义(缺少唯一性),但我不知道如何解决它。 请参阅下面的渲染属性。 请帮忙。 先感谢您。 我的代码详情: 在我的cshtml视图中,我将视图模型复杂类( SchoolPersonViewModel )调用3次:一个用于Student ,一个用于Father ,一个用于Mother 。 C#MVC模型类 public class SchoolPersonViewModel { [DisplayName(“Phone”)] public string Phone { get; set; } [DisplayName(“Email”)] [EmailRequired(StringPhonePropertyName = “Phone”, ErrorMessage = “Email is required if Phone is not provided”)] public string Email […]

作为就业申请的一部分,在c#MVC3(非托管)中的应用程序书面签名

我正在尝试找到类似于http://www.tenstreet.com的解决方案。 我试过环聊互联网和sourceforge,但我发现的一切都是关于加密数字签名(我将使用,但不是我缺乏的),而不是图像数字签名。 我发现了很多托管解决方案,但由于我们的业务性质,托管解决方案是不可能的(我工作的地方几乎必须在内部完成)。 如果这没有意义,我会解释背景。 我们是一家货运公司,我们的驱动程序应用程序的一部分是签名发布表。 我们目前需要传真该表格以获取签名并等待其传真回来。 我们希望实现的目标是在我们的网站上将此过程100%数字化。 最后,合法性明智的我们的法律部门已经成功,我只需要采购技术,我很难找到它。 使用的技术是C#MVC3(Razor View Engine)/ JavaScipt / jQuery / jQuery UI / HTML5标记正在使用中。 如果您需要任何其他信息,请告诉我们!

将JSON数据从Chrome浏览器扩展发布到MVC控制器

我编写了一个Chrome浏览器扩展程序,它使用Ajax将数据发布到MVC3控制器。 为了确保控制器代码有效,我首先编写了一个Razor网页来对ajax代码进行原型设计。 此代码适用于网页,JSON模型绑定所有。 我将它发布到一个完整的DNS主机和域名的IIS7服务器上。 代码仍然适用于测试页面。 function addUrl() { $(‘#res’).html(‘Adding…’); var myData = { url: $(‘#urlDiv’).html(), comments: $(‘#c1’).val() }; $.ajax( { url: ‘http://hostname.domainname/ControllerName/AddUrl’, type: “post”, dataType: “json”, data:JSON.stringify(myData), contentType: “application/json; charset=utf-8”, success: function (result) { $(‘#res’).html(result); }, error: function() { $(‘#res’).html(‘An error occurred’); } } ); }; 我将此jQuery函数复制到Chrome JavaScript文件中,并通过常规表单按钮从弹出窗口调用它。 Add URL Comments 由于某些原因,Chrome扩展程序中的post会出现404错误,并且我发现某些MVC3 XSS保护或类似内容阻止了post – 或者IIS7中的某些内容(UrlScan未安装)。

MVC3 Razor Ajax.ActionLink不会使用POST方法

我有一个包含多个链接的页面。 这些链接应该做一个ajaxpost和回调。 但是,该链接正在执行Get而不是Post。 这会导致404错误,因为我没有动作方法来处理请求的URL获取。 如果我从我的Action方法中删除HTTPPost属性,该链接可以正常工作,但是回调失败并且我返回的Json将在新页面中呈现。 这是我在视图中使用的代码。 @Ajax.ActionLink(“Add”, “AddToOrder”, new { itemID = item.ItemID }, new AjaxOptions { HttpMethod = “POST”, OnSuccess = “actionCompleted” }, new { id = “add-” + item.ItemID }) 这最终添加了这个HTML: Add to Order 我的控制器具有以下操作方法。 [HttpPost] public JsonResult AddToOrder(string itemID) { return Json(new { id = itemID, Action = “Added”, “Just getting this […]

带有文件上载的JQuery Ajax表单在IE中不起作用

我正在使用Jquery Ajax Form上传文件,这在Chrome和Firefox中运行良好,但它在IE中不起作用。 它会弹出一个窗口,告诉我保存我要上传的文件。 我的代码的一些示例,如果有必要,在这里是仪式:HTML: @Labels.Name @Buttons.GoBack @Buttons.Add JS: //Document Ready============================================================================= $(function () { $(‘#AddNewDocForm’).ajaxForm({ type: ‘POST’, beforeSubmit: function () { return $(“#AddNewDocForm”).valid(); }, success: function (documents) { FillDocuments(documents); $(‘#dialogAddNewDocument’).dialog(‘close’); } }); }); //Validate==================================================================================== //Validation===================================================================================== $(function () { $(“#AddNewDocForm”).validate({ ignore: “:not(:visible)”, rules: { File: “required”, Name: “required” } }); }); //========================================================================================= 行动 [HttpPost] public JsonResult […]

多个复选框的自定义DataAnnotation

好吧,所以我有这些产品的复选框,我想确保至少选择了一个产品。 为此,我的ViewModel包含: [DisplayName(@”Product Line”)] [MinChecked(1)] public List ActiveProducts { get; set; } 视图只包含: @Html.EditorFor(x => x.ActiveProducts) EditorTemplate包含: @model Rad.Models.CheckboxInfo @Html.HiddenFor(x => x.Value) @Html.HiddenFor(x => x.Name) @Html.CheckBoxFor(x => x.Selected) @Html.LabelFor(x => x.Selected, Model.Name) 自定义数据注释是: [AttributeUsage(AttributeTargets.Property, AllowMultiple = true)] public class MinCheckedAttribute : ValidationAttribute, IClientValidatable { public int MinValue { get; set; } public MinCheckedAttribute(int minValue) { […]

未捕获的SyntaxError:实时但不是本地服务器上的意外令牌B.

所以我正在制作一些ajaxpost,它似乎在localhost上正常工作,但当我将它发布到amazon上的ec2服务器时,我得到Uncaught SyntaxError:意外的令牌B.这似乎指向JSON解析失败。 完全相同的数据库,相同的浏览器和相同的方法被调用。 为什么它可以在本地而不是服务器上运行。 $.ajax({ url: ‘@Url.Action(“Action”)’, type: “POST”, data: ko.toJSON(viewModel), dataType: “json”, contentType: “application/json; charset:utf-8”, success: function (result) { }, error: function (xhr, textStatus, errorThrown) { var errorData = $.parseJSON(xhr.responseText); var errorMessages = []; for (var key in errorData) { errorMessages.push(errorData[key]); } toastr.error(errorMessages.join(“”), ‘Uh oh’); } }); 这是服务器端的基本布局: [HttpPost] public JsonResult Action(ViewModel model) { […]

jQuery .html()函数在IE 11中不起作用

在我的.net MVC3 Web应用程序中,我有一个返回一些html代码的ajax调用。 我将这个html传递给div,如下所示: $.ajax({ url: ‘controller/action’, data: {id: id,}, type: ‘GET’, async: false, success: function (data) { $(“#container”).html(data); }, }); 这在除了ie之外的所有浏览器中都可以正常工作。会发生什么是html不会在#container div中呈现,除非我点击页面上的某个位置。 如何在不点击ie11的任何地方的情况下获取html? 谢谢

级联下拉列表MVC 3

我即将在MVC 3中创建级联下拉列表.Logik很简单,对于每个位置可能有很多Employees,因此我可以找出如何实现它的最佳方法是下拉列表。 我现在拥有的是: 1列表填写在与地点相关的地方。 在变化时,我可以将数据输入到我的第二个员工列表中,但我传输的数据是“可记录日期”。 一旦我尝试发送带有ID和名字的员工,没有任何事情发生。 控制器代码: public ActionResult Months(string locId) { var k = service.getEmployeeForLocation(Int32.Parse(locId)) .ToList() .Select(x => new { Value = .EmployeeId, Text = x.Name }); return Json(k,JsonRequestBehavior.AllowGet); } 查看: Choose your closest location : @Html.DropDownListFor(x => x.SelectedLocation, Model.Locations) Choose your closest location : @Html.DropDownListFor(x => x.SelectedEmployee, Enumerable.Empty(), “– select month –“) 使用Javascript […]

捕获客户端validation失败

我有一个表单,我根据div点击提交。 点击时我也启动了等待指示器。 我试图找出是否有办法检测客户端validation是否失败,以便我可以删除等待指示符/从未在提交尝试后显示它…或者我可以手动调用客户端validation在我尝试提交之前?