【发布时间】:2012-12-20 14:42:12
【问题描述】:
我正在尝试使用 linq to SQL 和 jquery 在表中插入数据,但它失败了,找不到原因。
这是我的做法:
控制器:
[HttpPost]
public ActionResult SaveHours(string descType, string wrkType, decimal hours)
{
DataContext db = new DataContext();
Project hrs = new Project ();
{
hrs.descType = descType;
hrs.wrkType = wrkType;
hrs.hours= (decimal)hours;
}
db.Project.InsertOnSubmit(hrs);
db.SubmitChanges();
return Json(new { message = "Hours Saved" });
}
JQuery:
$(function(){
$("#SaveHours").click(function (e) {
e.preventDefault();
var link = '/Project/SaveHours';
$.ajax({
type: 'POST',
url: link,
data: { hours: $("#HoursWorked").val(),
descType: $("#Description").val(),
wrkType: $("#WorkType").val()
},
dataType: 'json',
success: function (result) {
alert(result.message);
},
error: function (result) {
alert("Failed");
}
});
});
查看:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<UI.Models.vwProject>>" %>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<div>
<table>
<tr>
<th>
Description
</th>
<td>
<input id="Description" type="text"/>
</td>
</tr>
<tr>
<th>
Work Type
</th>
<td>
<input id="WorkType" type="text"/>
</td>
</tr>
<tr>
<th>
Hours Worked
</th>
<td>
<input id="HoursWorked" type="text"/>
</td>
</tr>
<tr>
<td>
<button id="SaveHours" type="button" >Save</button>
</td>
</tr>
</table>
</div>
我在这里遗漏了什么吗? 非常感谢任何帮助。
编辑: 表格脚本:
CREATE TABLE [Project]
(
ProjectKey INT IDENTITY(1,1) NOT NULL,
descType VARCHAR(100) NULL,
wrkType VARCHAR(10) NULL,
hours NUMERIC(5,2) NULL
)
【问题讨论】:
-
您的 Project 表结构是什么? Linq-to-SQL 抛出的异常是什么
-
@RobertSlaney 我已经用表格脚本和异常更新了我上面的问题
-
它与 jQuery 发布的数据中元素的顺序一样基本吗?这是一个猜测,也许你的例外(我看不到)会证明我错了。
-
@DanielHollinrake 我让它工作了,我还没有在表中定义一个主键!所以无法执行 CRUD。
-
感谢您告诉我。很高兴你成功了。
标签: c# jquery html asp.net-mvc linq-to-sql