Asp.net mvc 4 ASP.NET mvc删除项

Asp.net mvc 4 ASP.NET mvc删除项,asp.net-mvc-4,knockout.js,Asp.net Mvc 4,Knockout.js,我有一个简单的数据库 CREATE TABLE [dbo].[Date] ( [Id] INT NOT NULL, [Name] NCHAR (10) NULL, [Date] DATE NULL, PRIMARY KEY CLUSTERED ([Id] ASC) ); 它包含两条记录 我的应用程序使用Date从数据库加载Name,并在屏幕上显示。 主要问题是,如果我应该使用remove 然后点击SaveData按钮,它应该传递到SaveDatanothing

我有一个简单的数据库

CREATE TABLE [dbo].[Date] (
[Id]   INT        NOT NULL,
[Name] NCHAR (10) NULL,
[Date] DATE       NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);
它包含两条记录

我的应用程序使用
Date
从数据库加载
Name
,并在屏幕上显示。

主要问题是,如果我应该使用
remove
然后点击
SaveData
按钮,它应该传递到
SaveData
nothing。 我认为我有一个严重的架构错误,因为
SaveData
函数不知道任何需要删除的记录。如何修复它

Index.cshtml

@{
ViewBag.Title = "Index";
}

<h2>Index</h2>
<input type="text" value="02.01.2016">
<button data-bind="click: loadData">Load data</button>
<script src="~/Scripts/knockout-2.2.0.js"></script>
<table>
<thead>
    <tr>
        <th>name</th>
    </tr>
</thead>
<tbody data-bind="foreach: items">
    <tr>
        <td><input data-bind="value: name" /></td>
        <td><a href="#" data-bind="click: $root.removeItems">Remove item</a></td>
    </tr>
</tbody>
</table>
<button data-bind="click: saveData">Save data</button>
<script>
function MyViewModel(){
    var self = this;
    self.items = ko.observableArray();
    self.removeItems = function (item) {
        self.items.remove(item);
    }
    self.loadData = function () {

        $.ajax({
            cache: false,

            type: "GET",

            url: "Home/GetData",

            data: { "date": $( "input" ).val() },

            success: function (data) {
                $.each(data, function (id, item) {
                    self.items.push({ name: item.Name });
                });
            },

            error: function (response) {
                alert('eror');
            }
        });
    }
    self.saveData = function () {
        var jsonOfLog = JSON.stringify(self.items());
        $.ajax({
            type: 'POST',
            dataType: 'text',
            url: "Home/SaveData",
            data: "jsonOfLog=" + jsonOfLog,
            success: function (returnPayload) {
                console && console.log("request succeeded");
            },
            error: function (xhr, ajaxOptions, thrownError) {
                console && console.log("request failed");
            },

            processData: false,
            async: false
        });
    }
}
ko.applyBindings(new MyViewModel());
</script>
@{
ViewBag.Title=“Index”;
}
指数
加载数据
名称
保存数据
函数MyViewModel(){
var self=这个;
self.items=ko.observearray();
self.removitems=功能(项目){
self.items.remove(项目);
}
self.loadData=函数(){
$.ajax({
cache:false,
键入:“获取”,
url:“主页/获取数据”,
数据:{“日期”:$(“输入”).val()},
成功:功能(数据){
$。每个(数据、功能(id、项目){
self.items.push({name:item.name});
});
},
错误:函数(响应){
警报(“eror”);
}
});
}
self.saveData=函数(){
var jsonOfLog=JSON.stringify(self.items());
$.ajax({
键入:“POST”,
数据类型:“文本”,
url:“主页/保存数据”,
数据:“jsonOfLog=“+jsonOfLog,
成功:功能(返回有效载荷){
console&&console.log(“请求成功”);
},
错误:函数(xhr、ajaxOptions、thrownError){
console&&console.log(“请求失败”);
},
processData:false,
异步:false
});
}
}
应用绑定(新的MyViewModel());
家庭控制器:

public ActionResult Index()
    {
        return View();
    }
    modelEntities ME = new modelEntities();
    [HttpGet]
    public JsonResult GetData(string date)
    {
        DateTime inputdate = DateTime.Parse(date);

        List<Date> list = ME.Date.Where(key => key.Date1 == inputdate).ToList();
        return Json(list, JsonRequestBehavior.AllowGet);
    }
    [HttpPost]
    public string SaveData(string jsonOfLog)
    {

        return Convert.ToString(jsonOfLog);
    }
public ActionResult Index()
{
返回视图();
}
modelEntities ME=新的modelEntities();
[HttpGet]
公共JsonResult GetData(字符串日期)
{
DateTime inputdate=DateTime.Parse(日期);
List List=ME.Date.Where(key=>key.Date1==inputdate.ToList();
返回Json(列表,JsonRequestBehavior.AllowGet);
}
[HttpPost]
公共字符串SaveData(字符串jsonOfLog)
{
返回Convert.ToString(jsonOfLog);
}

它应该传递给SaveData nothing
您能更清楚地说明这一点吗?如果SaveData应该更新记录,您可能需要使用
Id
它应该传递给SaveData nothing
您能更清楚地说明这一点吗?如果SaveData应该更新记录,您可能需要使用
Id
var jsonOfLog = ko.toJSON({ jsonOfLog: self.items });

$.ajax({
  url:"Home/SaveData",
  data: jsonOfLog,
  type: "post",
  contentType: "application/json",
  success: function(result) {
    alert(result)
  }
});