2015-09-22 99 views
0

我有一个视图模型,其中绑定下面笔者认为页:视图模型绑定问题

var form = $("form"); 

    $(function() { 
     var viewModel = kendo.observable(JSON.parse('@Html.Raw(Json.Encode(Model))')); 

     kendo.bind(form, viewModel[0]); 
    }); 

但这里的问题是,我使用视图模型[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

既然你只想使用第一个元素,那就应该是这样,因为你是通过“id”得到它的,你可以只返回单个元素而不是List元素。

var LnDetail = await _LnProxy.GetLnDetailByLnNum((string)id).FirstOrDefault(); 

然后你的模式将是:

@model PC.CManager.Cs.Domain.Models.Ln 

然后在JavaScript中,你可以使用它没有角括号,只是视图模型。因为它现在是单个对象,而不是数组。