我的视图页面中有一个viewModel,绑定如下:
var form = $("form");
$(function () {
var viewModel = kendo.observable(JSON.parse('@Html.Raw(Json.Encode(Model))'));
kendo.bind(form, viewModel[0]);
});
但这里的问题是我使用的viewModel [0]看起来很奇怪。
我们可以在没有[0]的情况下将绑定代码重写为如下所示,这会在绑定时产生问题
kendo.bind(form, viewModel);
这是我的观点:
@model IList<PC.CManager.Cs.Domain.Models.Ln>
@using (Html.BeginForm())
{
<div class="panel panel-primary">
<div class="panel-heading inform" style="">
<table clases="panel-title inform">
<tr>
<td class="inform">Loan Number: <label id="loannum" name="loannum">1000100001</label></td>
<td class="inform">Status: <label id="loanstatus" name="loanstatus">Forclosure</label></td>
<td class="inform">Loan Type: <label id="loantype" name="loantype">Government(FHA)</label></td>
</tr>
</table>
</div>
控制器:
public async Task<ActionResult> ClaimDetail()
{
//return View();
string id = "1000000246";
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
var LnDetail = await _LnProxy.GetLnDetailByLnNum((string)id);
if (LnDetail == null)
{
return HttpNotFound();
}
return View(LnDetail);
}
我们如何重写绑定代码看起来很好并且工作正常?
答案 0 :(得分:0)
由于你只想使用第一个元素,因为你是通过&#34; id&#34;来获取它,你只能返回单个元素而不是元素列表。
var LnDetail = await _LnProxy.GetLnDetailByLnNum((string)id).FirstOrDefault();
然后你的模型将是:
@model PC.CManager.Cs.Domain.Models.Ln
然后在JavaScript中,您可以在没有尖括号的情况下使用它,只需使用viewModel。因为它现在只是一个对象,而不是数组。