0

我第一次使用带有 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.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);
    }

 }
}

这是我的索引类

@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>

我的输出是这样的:

姓名:

姓:

如您所见,它没有显示我在编码部分提供的名称,请帮助我并告诉我该怎么做才能获得所需的输出。

4

3 回答 3

1

H,

这是一篇旧帖子。我回答了这个问题,因为如果有人有这个问题,我的解决方案也适用于他们。

您必须在 knockout.js 插件之前添加 jquery 插件。

<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>

于 2017-04-28T09:45:14.963 回答
0

您能确认所有脚本都已加载吗?我认为这不是正确的路径(基于 statndard MVC 文件夹位置)

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

这个可能是正确的:

'<script src="@Url.Content("~/Scripts/knockout-2.1.0.js")"></script>'
于 2013-09-03T04:00:33.693 回答
0

您的 ViewModel 属性不是可淘汰的可观察属性。您可以使用淘汰赛映射插件。在这种情况下,您的 javascript 必须是:

$(function()
{
 var model = @Html.Raw(Json.Encode(Model))  
 var viewModel = ko.mapping.fromJS(data);
 ko.applyBindings(viewModel );
});    
于 2013-09-02T09:53:48.280 回答