我已經通過大量的例子,並嘗試了很多不同的方式,我一直無法讓我的淘汰賽發佈到我的控制器使用MVC 4.任何想法是什麼問題是?我是MVC和Knockout的新手,所以解釋會很有幫助。淘汰賽沒有發佈到控制器
**knockout.js**
<script src="~/Scripts/jquery-1.8.2.min.js"></script>
<script src="~/Scripts/knockout-2.2.0.js"></script>
<!-- <script src="~/MyJS/AddTeamMember.js"></script> -->
<script src="~/Scripts/knockout.mapping-latest.js"></script>
<script type="text/javascript">
var initialData = [
{
name: "", email: "", phone: "", dept: ""
}
];
var ContactsModel = function (contacts) {
var self = this;
self.contacts = ko.observableArray(ko.utils.arrayMap(contacts, function (contact) {
return { name: contact.name, email: contact.email, phone: contact.phone, dept: contact.dept };
}));
self.addContact = function() {
self.contacts.push({
name: "",
email: "",
phone: "",
dept: ""
});
};
self.removeContact = function (contact) {
self.contacts.remove(contact);
};
self.save = function() {
self.lastSavedJson(JSON.stringify(ko.toJS(self.contacts), null, 2));
var jsonString = ko.mapping.toJSON(self.contacts);
$.ajax({
type: 'POST',
url: '@Url.Action("Register", "Register")',
data: jsonString,
contentType: 'application/json; charset=utf-8',
dataType: 'json'
});
};
self.lastSavedJson = ko.observable("")
};
</script>
查看代碼:
<div class='memInfoForm'>
<h2>Team Members</h2>
<div id='contactsList'>
<table class='contactsEditor'>
<tr>
<th>Name</th>
<th>Email</th>
<th>Phone</th>
<th>Dept</th>
</tr>
<tbody data-bind="foreach: contacts">
<tr>
<td>
<input data-bind='value: name' />
<div><a href='#' data-bind='click: $root.removeContact'>Delete</a></div>
</td>
<td><input data-bind='value: email' /></td>
<td><input data-bind='value: phone' /></td>
<td><input data-bind='value: dept' /></td>
</tr>
</tbody>
</table>
</div>
<p>
<button data-bind='click: addContact'>Add a Member</button>
<button data-bind='click: save, enable: contacts().length > 0' id="saveMembers">Save Member List</button>
</p>
控制器代碼
[HttpPost]
public ActionResult Register(ContactsModel model)
{
...
return View();
}
注 - 我沒有在這個例子的控制器中進行處理。我的問題是我甚至無法將表格發送給我的控制器。 – Hope
你有什麼嘗試?當您點擊保存按鈕時,瀏覽器控制檯中是否有錯誤?是否調用save函數?是否有AJAX請求出去?發佈包括Excel操作代碼(WTF?)在內的整個應用程序代碼並希望社區能夠指出您的問題並不是一個好主意。將其縮小到特定的問題,然後我們可以提供幫助。 – Avish
是的,保存的功能正在被調用。它首先使用json字符串填充textarea,然後工作,但是帖子沒有發生。我已經嘗試了硬編碼控制器和使用剃刀幫手(我從一個例子中拉出),但從Avish注意到,該幫手將無法正常工作我已經返回的網址被硬編碼。我沒有在瀏覽器中看到錯誤,因爲沒有任何反應。 – Hope