【问题标题】:data insert failing when trying to insert data using LINQ to SQL尝试使用 LINQ to SQL 插入数据时数据插入失败
【发布时间】: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


【解决方案1】:

在控制器处编辑:

  ...
 if (HttpContext.Request.IsAjaxRequest())
    {
     return Json(new { message = "Hours Saved"  }, JsonRequestBehavior.AllowGet);
    }
  ...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-29
    • 2015-12-17
    • 2021-05-19
    • 1970-01-01
    • 1970-01-01
    • 2014-05-03
    相关资源
    最近更新 更多