2013-09-02 4 views
0

MVC로 처음으로 녹아웃을 사용하고 있습니다. 정적 인 이름과 성을 표시하려고 시도하고 있으며 컨트롤러 클래스에 정의 된대로 표시됩니다. 나는 데이터를 보여주기 위해 최선을 다해 노력했지만 예상했던대로 결과물을 출력하지 못했습니다. 다음과 같이 내 코드입니다 : 이것은 내 컨트롤러 클래스입니다MVC에서 녹아웃을 사용하여 정적 데이터를 바인딩하는 방법

using PerpetuumSoft.Knockout; 
using PerpetuumSoft; 
using DelegateDecompiler; 

namespace MvcApplication20.Models 
{ 
public class Class1 
{ 

    public string Number { get; set; } 
    public string Name { get; set; } 
    public string Surname { get; set; } 

} 
} 

모델 클래스이 사람은 내 인덱스 클래스 내 출력은

@using System.Web.Script.Serialization; 
@model MvcApplication20.Models.Class1 

<h2>Indexer</h2> 
<script src="~/Scripts/knockout-2.1.0.js"></script> 
<script src="~/Scripts/knockout.mapping-latest.js"></script> 
<p> Name:<span data-bind="text:Name"></span></p> 
<p> SurName:<span data-bind="text:Surname"></span></p> 
<script type="text/javascript"> 
    $(function() 
{ 

    var model = @Html.Raw(Json.Encode(Model))   
     ko.applyBindings(model); 
    }); 
    </script> 

using System.Web.Mvc; 
using MvcApplication20.Models; 
using PerpetuumSoft.Knockout; 

namespace MvcApplication20.Controllers 
{ 
public class HomeController : Controller 
{ 
    [HttpGet] 
    public ActionResult Index() 
    { 
     Class1 student = new Class1(); 
     student.Number = "B123456"; 
     student.Name = "Anubhav"; 
     student.Surname = "Chaudhary"; 
     return View(student); 
    } 

} 
} 

입니다 like :

이름 :

성 :

당신이 내가 코딩 섹션에서 제공했던 이름을 보여주는 아니에요 볼 수 있듯이, 나 좀 도와 그래서 그 무엇을 말해주십시오 원하는 출력을 얻을 수 있습니다.

답변

0

ViewModel 속성이 녹아웃 관측 가능 속성이 아닙니다. knockout mapping plugin을 사용할 수 있습니다. 이 경우 귀하의 자바 스크립트는 다음과 같아야합니다.

$(function() 
{ 
var model = @Html.Raw(Json.Encode(Model)) 
var viewModel = ko.mapping.fromJS(data); 
ko.applyBindings(viewModel); 
});  
+0

감사 Siyamad 내 질문에 대답하지만 지금까지 내가 우리는 우리가 어떤 속성을 편집 가능하도록 할 때 관찰 가능한 사용하지만, 알고 여기에 내가 그들을 편집하고 있지 않다위한, 그들의 가치는 모든 곳에서 동일하게 유지 될 것입니다. 하지만 여전히 자바 스크립트에 코드를 적용했지만 작동하지 않고 여전히 원하는 결과를 제공하지 않습니다. 다른 솔루션을 제공 할 수 있습니까? –

0

모든 스크립트가로드되었는지 확인할 수 있습니까?

이 이전 게시물입니다,

'<script src="@Url.Content("~/Scripts/knockout-2.1.0.js")"></script>' 
+0

내 질문에 대한 답변을 주셔서 감사합니다 Rustam, 나는 또한 귀하의 솔루션을 시도했지만 여전히 원하는 결과를 제공하지 않습니다. –

1

H : 나는 이것이합니다 (statndard MVC 폴더 위치 기준) 올바른 경로

'<script src="~/Scripts/knockout-2.1.0.js"></script>' 

아니라고 생각이 하나의 올바른 될 수있다 누군가에게이 문제가 생기면 내 해결책도 그들에게 도움이 될 것입니다.

knockout.js 플러그인 전에 jquery plugin을 추가해야합니다.

<script src="~/Scripts/jquery-1.10.2.min.js"></script>

<script src="~/Scripts/knockout-2.1.0.js"></script>

<script src="~/Scripts/knockout.mapping-latest.js"></script>

관련 문제