Javascript 如果项目发生更改,则向控制器发送数据

Javascript 如果项目发生更改,则向控制器发送数据,javascript,jquery,knockout-2.0,Javascript,Jquery,Knockout 2.0,我只需要将用户更改的项目发送给控制器。例如,如果第一项Jhon更改为Jhon1,则应发送,如果再次更改为“Jhon”,则不发送。如何检查这种情况?使用JQuery?为了什么 @{ ViewBag.Title = "Index"; } <script src="~/Scripts/jquery-1.8.2.min.js"></script> <script src="~/Scripts/knockout-2.2.0.js"></script> &l

我只需要将用户更改的项目发送给控制器。例如,如果第一项
Jhon
更改为
Jhon1
,则应发送,如果再次更改为“Jhon”,则不发送。如何检查这种情况?使用JQuery?为了什么

@{
ViewBag.Title = "Index";
}
<script src="~/Scripts/jquery-1.8.2.min.js"></script>
<script src="~/Scripts/knockout-2.2.0.js"></script>

<h2>Index</h2>

<table>
    <thead>
        <tr>
            <th>Passenger name</th>
        </tr>
    </thead>
    <tbody data-bind="foreach: items">
        <tr>
            <td><input data-bind="value: name" /></td>
        </tr>
    </tbody>
</table>
<button data-bind="click: senddata">send</button>


<script>
function MyViewModel() {
    var self = this;
    self.items = ko.observableArray();
    self.items.push({ name: 'Jhon' });
    self.items.push({ name: 'Smith' });

    self.senddata = function () {
        var jsonOfLog = JSON.stringify(self.items());
        debugger;
        $.ajax({
            type: 'POST',
            url: 'Home/ConvertLogInfoToXml',
            contentType: 'application/json; charset=utf-8',
            data: JSON.stringify({ jsonOfLog: jsonOfLog }),
            dataType: 'json'
        });
        debugger;
    }
}

ko.applyBindings(new MyViewModel());

嘿,难道不可能在服务器端执行此验证吗?如果只发送json数据,就不会有太多数据,对吗?我倾向于在服务器端这样做,主要是为了安全。例如,在服务器端,我应该从数据库中获取旧项目,用新项目检查它们。我认为这将是服务器上的额外负载。是吗?肯定会的,但这是一种权衡,你应该根据你的系统安全要求来决定。我在金融行业工作了10年,这种权衡是可以接受的(实际上是必须的)。
public class HomeController : Controller
{
    //
    // GET: /Home/

    public ActionResult Index()
    {
        return View();
    }

    [HttpPost]
    public string ConvertLogInfoToXml(string jsonOfLog)
    {
        Console.WriteLine(jsonOfLog);
        return Convert.ToString(jsonOfLog);
    }

}