我在那裏我渲染我的局部視圖使用表作爲數據的MVC項目映射到C#列表:獲取價值和使用jQuery
<table id="tblUserSettings" class="table table-bordered CmtTable">
<thead>
<tr>
<th>User Name</th>
<th>Country</th>
<th>System (s)</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
@if (Model == null)
{
<tr></tr>
}
else
{
foreach (var item in Model)
{
<tr>
<td><input type="hidden" id="usrId" value="@item.UserId" />
@item.UserName</td>
<td> <input type="hidden" id="usrCountryKey" value="@item.UserCountryKey" style="display:none"/>
@item.UserCountryName</td>
<td> <input type="hidden" id="usrSourceSystemKey" value="@item.UserSourceSystemKey" />
@item.UserSourceSystemDescription</td>
<td><a onclick='DeleteUserSettingsRow();'><i class='fa fa-times'></i> Delete</a><a onclick='EditUserSettingsPopup();'><i class='fa fa-pencil'></i> Edit</a></td>
</tr>
}
}
</tbody>
</table>
我要去保存從該表中的值到數據庫中,需要調用AddUserSettingsaction方法在控制器:
[HttpPost, Route("AddUserSettings")]
public ActionResult AddUserSettings(IEnumerable<UserSettings> request)
{
AddUserSettingsRequest apiRequest = null;
return View();
}
UserSettings的模型如下:
public class UserSettings
{
public UserSettings();
public string UserId { get; set; }
public string UserName { get; set; }
public string UserCountryKey { get; set; }
public string UserCountryName { get; set; }
public string UserSourceSystemKey { get; set; }
public string UserSourceSystemDescription { get; set; }
}
我需要從表保存數據(包括隱藏字段)到使用jQuery數據庫,所以我已經創建了一個函數和調用它爲:
<button type="button" id="btnAdd" onclick="SaveUserSettings();"><i class="fa fa-save"></i> Save</button>
function SaveUserSettings()
{
debugger;
var userSettings = [];
$("table#tblUserSettings tr").each(function (i, v) {
userSettings[i] = [];
$(this).children('td').each(function (ii, vv)
{
userSettings[i][ii] = $(this).text();
});
})
alert(userSettings);
$.ajax({
url: '@Url.Action("AddUserSettings", "Admin")',
type: "POST",
contentType: "application/json;",
data: JSON.stringify(userSettings),
success : function (result)
{
//alert(result);
},
error: function (result)
{
//alert(result);
}
});
}
利用上述SaveUserSettings()函數,我可以獲取不隱藏的值,但是我需要創建一個包含隱藏屬性的數組,並且可以將ajax請求作爲參數與控制器一起發送。如何獲取隱藏字段並創建一個映射到我的控制器的IEnumerable請求的數組?
不清楚你想做什麼。你沒有任何可編輯的表單控件,爲什麼你要回傳你的控制器發送給視圖的相同值。重複的'id'屬性是無效的html(使用類名和相對選擇器)。你也不需要'style =「display:none」'。 –
局部視圖有一個UserSettings列表,所以最初它是空的,然後用戶將一些設置添加到表單中,並將相同的設置存儲到數據庫中。問題是當我從表中獲取數據時,隱藏字段的值正在檢索。任何建議都一樣嗎? –
你不需要使用jquery解析它,只需要像這樣創建元素名稱'[0] .UserName' Modelbinder會爲你綁定它。 – Krishna