本文介绍了数据是不会在控制器方法 - MVC的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我是新来的MVC,我想编辑的行和编辑数据发送到通过jQuery和AJAX控制器的方法,当我点击编辑特定的行变为文本框和保存
的ActionLink
将取代修改
,但是当我将它保存它给了我一个例外。
I am new to MVC, I am trying to edit a row and sending edited data to a controller method via jQuery and AJAX, when I click on edit the specific row becomes textboxes and save
ActionLink
appears instead of edit
, but when I save it it gives me an exception.
这是我的jQuery / AJAX:
here is my jQuery/AJAX:
@model IEnumerable<OTESSystem.Models.tbl_HolidayList>
@{
ViewBag.Title = "Index";
}
<script src="~/Scripts/jquery-1.8.2.min.js"></script>
<script src="~/Scripts/jquery-ui-1.8.24.min.js"></script>
<link href="~/Content/themes/base/jquery-ui.css" rel="stylesheet" />
<script type="text/javascript">
$(document).ready(function () {
function toggleEditability() {
$(this).closest('tr')
.find('a.Edit, a.Save, .displayText, input[type=text]')
.toggle();
}
$('a.Edit').click(toggleEditability);
$('a.Save').click(function () {
toggleEditability.call(this);
var data = $(this).closest('form').serialize();
//var url = $(this).attr('href');
var actionURL = '@Url.Action("Edit", "Holiday")';
$.ajax({
url: actionURL, // Url to send request to
data:data, // Send the data to the server
type: "POST", // Make it a POST request
dataType: "html", // Expect back HTML
success: function (html) {
$("#dialog-edit").dialog('open'); //
}
});
});
});
</script>
CHTML code:
chtml code:
<div id="details">
<table>
<tr>
@*<th>
@Html.Label("ID")
</th>*@
<th>
@Html.Label("Name")
</th>
<th>
@Html.Label("Description")
</th>
<th>
@Html.Label("Date")
</th>
<th></th>
</tr>
@foreach (var item in Model)
{
if (Convert.ToDateTime(item.Holiday_date).Year.ToString() == DateTime.Now.Year.ToString())
{
<tr>
@* <td>
@Html.TextBoxFor(modelItem => item.Holiday_Id, new { style = "display: none; width:170px; height:15px" })
<div class="displaytext">
@Html.DisplayFor(modelItem => item.Holiday_Id)
</div>
</td>*@
<td>
@Html.TextBoxFor(modelItem => item.Holiday_Name, new { style = "display: none; width:170px; height:15px" })
<div class="displaytext">
@Html.DisplayFor(modelItem => item.Holiday_Name)
</div>
</td>
<td>
@Html.TextBoxFor(modelItem => item.Holiday_Description, new { style = "display: none; width:170px; height:15px" })
<div class="displaytext">
@Html.DisplayFor(modelItem => item.Holiday_Description)
</div>
</td>
<td>
@Html.TextBoxFor(modelItem => item.Holiday_date, new { style = "display: none; width:170px; height:15px" })
<div class="displaytext">
@Html.DisplayFor(modelItem => item.Holiday_date)
</div>
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id = item.Holiday_Id }, new { @class = "Edit", Href="#" })
@Html.ActionLink("Save", "Save", new { id = item.Holiday_Id}, new { @class = "Save", Href = "#", style = "display:none" } ) |
@Html.ActionLink("Delete", "Delete", new { id = item.Holiday_Id }, new { @class = "lnkDelete" })
@Html.ActionLink("Cancel", "Cancel", new { id = item.Holiday_Id}, new { @class = "Cancel", Href = "#", style = "display:none" } )
</td>
</tr>
}
}
</table>
</div>
控制器方法code:
Controller method code:
public ActionResult Edit(tbl_HolidayList tbl_holidaylist)
{
if (ModelState.IsValid)
{
db.Entry(tbl_holidaylist).State = EntityState.Modified;
db.SaveChanges();
TempData["Msg"] = "Data has been updated succeessfully";
return RedirectToAction("Index");
}
return PartialView(tbl_holidaylist);
}
tbl_HolidayList.cs
tbl_HolidayList.cs
namespace OTESSystem.Models
{
using System;
using System.Collections.Generic;
public partial class tbl_HolidayList
{
public int Holiday_Id { get; set; }
public string Holiday_Name { get; set; }
public string Holiday_Description { get; set; }
public Nullable<System.DateTime> Holiday_date { get; set; }
}
}
你能告诉我为什么我收到此异常?
Can you tell me why I am getting this exception??
推荐答案
这为我工作。
<script type="text/javascript">
$(document).ready(function () {
function toggleEditability() {
$(this).closest('tr')
.find('a.Edit, a.Save, .displayText, input[type=text]')
.toggle();
}
$('a.Edit').click(toggleEditability);
$('a.Save').click(function () {;
//alert("hello");
var tr = $(this).parents('tr:first');
//alert(tr);
var hid = tr.find("#hdnid").val();
var HName = tr.find("#txtname").val();
var Hdesc = tr.find("#txtdesc").val();
var date = tr.find("#txtdate").val();
tr.find("#hdnid").text(hid);
tr.find("#txtname").text(HName);
tr.find("#txtdesc").text(Hdesc);
tr.find("#txtdate").text(date);
toggleEditability.call(this);
//tr.find('.edit-mode, .display-mode').toggle();
//alert(hid);
//alert(HName);
//alert(Hdesc);
//alert(date);
var dataToSend = {
Holiday_Id: hid,
Holiday_Name: HName,
Holiday_Description : Hdesc,
Holiday_date: date
}
var url = '@Url.Action("Edit", "Holiday")';
//alert("b4 ajax");
$.ajax({
url: '@Url.Action("Edit", "Holiday")',
type: "Post",
data: dataToSend,
//dataType: "html",
success: function (data) {
alert("saved");
},
error: function () {
alert("error");
}
});
});
});
</script>
这篇关于数据是不会在控制器方法 - MVC的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!