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)
}
});