我正在研究MVC4并尝试使用
JQuery和JSON将值表单视图传递给控制器.该查询正在提取网格内的复选框的值.以下是代码:
<script type="text/javascript"> function DeleteCustomer() { var temp = ""; var id = ""; if (confirm("Are you sure to delete records?")) { $('#myGrid table tr').each(function () { if ($(this).find("input[id*='assignChkBx']").length > 0) { if ($(this).find("input[id*='assignChkBx']")[0].checked == true) { temp = $(this).find("input[id*='assignChkBx']").val(); if (temp != "" || temp != null) { id = id + " " + temp; temp = ""; } } // End of Loop } }); //End of each Loop $.ajax({ url: "Customer/DeleteCustomeByID",type: "POST",contentType: 'application/json; charset=utf-8',dataType: "json",data: "{'CustomerID':'" + id + "'}",success: function (data) { //alert('Records deleted'); $('#lblMessage').html('Records Deleted'); },error: function (xhr,textStatus,err) { alert('Error: ' + err); //$('#lblMessage').html(err); } }); } }
我的HTML代码如下:
<input type="button" id="btnDelete" value="Delete" title="Delete" onclick="DeleteCustomer()" style="color: Gray" />
@{ WebGrid grid = new WebGrid(Model,rowsPerPage: 15,ajaxUpdateContainerId: "myGrid"); } @grid.GetHtml( fillEmptyRows: false,alternatingRowStyle: "alternate-row",headerStyle: "grid-header",footerStyle: "grid-footer",mode: WebGridPagerModes.All,firstText: "<< First",prevIoUsText: "< Prev",nextText: "Next >",lastText: "Last >>",columns: new[] { grid.Column("",format: @<text><input class="check-Box" type="checkBox" id="assignChkBx" value="@item.CustomerID" /></text>),grid.Column("CustomerID","CustomerID",canSort: true),grid.Column("CompanyName","Company Name",grid.Column("ContactName","Contact Name",grid.Column("Address","Address",canSort: false),grid.Column("City","City",grid.Column("",header: "Actions",format: @<text> @Html.ActionLink("Edit","Edit",new { id=item.CustomerID} ) @Html.ActionLink("Delete","Delete",new { id=item.CustomerID} ) </text> ) })
当我单击删除按钮时,上面提到的jquery将把所选值带到控制器.控制器代码如下:
[HttpPost] public ActionResult DeleteCustomeByID(string CustomerID) { Customer customer = new Customer(); try { if (ModelState.IsValid) { string[] values = CustomerID.Split(' '); for (int i = 1; i <= values.Length - 1; i++) { if (values[i].ToString().Trim() != "" || values[i].ToString() != null) { customer = db.Customers.Find(values[i].ToString()); db.Customers.Remove(customer); db.SaveChanges(); } } return RedirectToAction("Index"); } return View(customer); // Error in Model,if any } catch (DbEntityValidationException dbEx) { foreach (var validationErrors in dbEx.EntityValidationErrors) { foreach (var validationError in validationErrors.ValidationErrors) { Trace.Traceinformation("Class: {0},Property: {1},Error: {2}",validationErrors.Entry.Entity.GetType().FullName,validationError.PropertyName,validationError.ErrorMessage); } } throw new Exception(); // You can also choose to handle the exception here... } catch (Exception ex) { throw new Exception(ex.Message); } }
当我单击删除按钮时,值将转到控制器并删除记录.但问题是,在将记录删回到控制器后,我收到以下错误:FireFox的“SyntaxError:JSON.parse:意外字符”,“json解析错误无法识别的标记’<'”用于Safari和“错误” :对象错误.“
我搜索各种网站并尝试各种解决方案.但没有任何工作.我正在使用northwind数据库.
提前致谢.
帕塔
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。