Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc knockoutmvc-无法分析绑定_Asp.net Mvc_Knockout.js_Knockout Mvc - Fatal编程技术网

Asp.net mvc knockoutmvc-无法分析绑定

Asp.net mvc knockoutmvc-无法分析绑定,asp.net-mvc,knockout.js,knockout-mvc,Asp.net Mvc,Knockout.js,Knockout Mvc,我有一个ASP.NETMVC站点,我正在尝试让淘汰版MVC使用它 我在C代码中创建了一个名为退款的视图模型,其中包含一个名为凭证的凭证类型和一个名为国家的列表。凭证的类型为int的变量称为VoucherNumber 此视图模型被传递到一个强定义的视图return\Index 我正在尝试让淘汰mvc将return.Voucher.VoucherNumber中的值绑定到一个文本框,并将return.Countries中的值绑定到一个下拉列表。在控制器上,我硬编码了凭证.Vouchernumber的值

我有一个ASP.NETMVC站点,我正在尝试让淘汰版MVC使用它

我在C代码中创建了一个名为
退款
的视图模型,其中包含一个名为
凭证
凭证
类型和一个名为
国家的
列表。凭证的类型为
int
的变量称为
VoucherNumber

此视图模型被传递到一个强定义的视图
return\Index

我正在尝试让淘汰mvc将return.Voucher.VoucherNumber中的值绑定到一个文本框,并将
return.Countries
中的值绑定到一个下拉列表。在控制器上,我硬编码了凭证.Vouchernumber的值,并将两个国家/地区添加到国家/地区列表中

以下是我的查看代码:

@using Resources
@using PerpetuumSoft.Knockout
@model MVC.Models.RefundViewModel
@{
    var ko = Html.CreateKnockoutContext();
}

<div id="refundformcontainer">
    <div id="headersection">
        <div id="pagetitlecontainer">@Language.RefundVouchers</div>
        <div id="helpercontainer">
            <label id="lblhelper">To begin enter a voucher number or scan a barcode</label>
        </div>
    </div>

    <div id="vouchercontainer">
        <div id="voucherdetailscontainer">
            <h5>@Language.VoucherDetails</h5>
            <div id="vouchernumbercontainer" class="initialvoucherfield">
                @Html.LabelFor(x=>x.Voucher.VoucherNumber)
                @ko.Html.TextBox(x=>x.Voucher.VoucherNumber)
            </div>
            <div id="countrycontainer" class="initialvoucherfield">
                @Html.LabelFor(x=>x.Voucher.Country)
                <select ko.Bind.Options(x=>x.Countries).OptionsText("Name").OptionsValue("CountryId").Value(x=>x.Voucher.CountryId) ></select>
            </div>
        </div>
    </div>
</div>
@ko.Apply(Model);
然后,我更改了退款视图模型,使其具有属性VoucherNumber,并使文本框引用该属性,而不是Voucher.VoucherNumber属性

@ko.Html.TextBox(x=>x.VoucherNumber)
当我运行这个时,我得到了同样的无法解析绑定错误,但这次是针对国家

Bindings value: options : Countries, optonsText : Name, optionsValue : CountryId

有人知道是什么原因造成的吗?

我想,这应该行得通

<select @ko.Bind.Options(x=>x.Countries).OptionsText("'Name'").OptionsValue("'CountryId'").Value(x=>x.Voucher.CountryId) ></select>
x.Countries).OptionsText('Name').OptionsValue('CountryId').Value(x=>x.document.CountryId)>

Knockout mvc当前有一个错误,因此嵌套属性(例如
x.concedure.VoucherNumber
)没有正确写入看到此副本吗?解决问题:谢谢,这是一个相当糟糕的错误!你的链接让我读了更多,并发现了这个-不太确定我现在会用它!我不认为淘汰mvc会像链接问题中的Tyrsius那样糟糕,它有一些问题和局限性,但与webforms相比,它太强大了。如果您知道knockout,并且无论如何都使用ASP.NET MVC,并且您喜欢存储类型化视图和kncockout数据绑定表达式,并且您知道自己在做什么,那么它并没有那么糟糕。knockout MVC的最大问题是:项目似乎有点被放弃了。最近github上没有太多活动。。。这个bug在8次挂载后就打开了……是的,我觉得很奇怪,像嵌套属性这样的简单东西不起作用。这比什么都让我担心
Bindings value: options : Countries, optonsText : Name, optionsValue : CountryId
<select @ko.Bind.Options(x=>x.Countries).OptionsText("'Name'").OptionsValue("'CountryId'").Value(x=>x.Voucher.CountryId) ></select>