У меня есть простой базы данныхASP.NET MVC удалить элемент
CREATE TABLE [dbo].[Date] (
[Id] INT NOT NULL,
[Name] NCHAR (10) NULL,
[Date] DATE NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);
она содержит две записи
Мое приложение загрузки Name
из базы данных с использованием Date
и отображения на экране.
Основная проблема заключается в том, что, если я должен удалить один элемент из списка с помощью Remove
и чем нажать на кнопку Save data
он должен перейти к SaveData
ничего. Я думаю, что у меня серьезная архитектурная ошибка, потому что функция 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>
HomeController:
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);
}
'он должен перейти к SaveData nothing' вы можете быть более ясно по этому вопросу. –
Если SaveData должен обновить запись, вы, вероятно, захотите использовать 'Id' – Neps