2015-09-22 96 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中,你可以使用它沒有角括號,只是視圖模型。因爲它現在是單個對象,而不是數組。