1
Когда я нажимаю кнопку «Сохранить», ничего не происходит, и точка останова в контроллере SaveProducts не отвечает. Зачем? Я знаю, что нужно реализовать jsondeserealize, потому что продукт должен быть нулевым.asp.net post json to controller
HomeController.cs
Index.cshtml
@{
ViewBag.Title = "Index";
}
<script src="~/Scripts/knockout-2.2.0.js"></script>
<h2>Index</h2>
<div data-bind="with: currentProduct">
<p>Name: <input type="text" data-bind="value: productName" /></p>
</div>
<input type="button" value="Save" data-bind="click: saveProduct" />
<script>
function ProductViewModel() {
var self = this;
self.currentProduct = ko.observable(new Product("P1"));
self.saveProduct = function() {
var productModel = ko.toJS(self.currentProduct);
ko.utils.postJson("/Home/SaveProducts", {product: productModel});
}
}
function Product(name) {
var self = this;
self.productName = ko.observable(name);
}
ko.observable(new ProductViewModel());
</script>
ProductModel.cs
public class ProductModel
{
public string productName { get; set; }
}
Принимается ответ выглядит хорошо, но просто совет на будущее; когда вы сталкиваетесь с такими проблемами, используйте инструменты браузера dev (F12) и смотрите вкладку и консоль сети. Если вы нажмете на свою кнопку и не увидите POST, вы точно знаете, что проблема - это ваш клиентский скрипт. –