Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.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
Javascript 如何预填充下拉列表_Javascript_Html_Asp.net Mvc_Knockout.js - Fatal编程技术网

Javascript 如何预填充下拉列表

Javascript 如何预填充下拉列表,javascript,html,asp.net-mvc,knockout.js,Javascript,Html,Asp.net Mvc,Knockout.js,我有一个下拉列表,它是通过一个GetJSON调用填充的,如下所示 查看 @{ var NoticeFilter =(X.Models.Y.Z.NoticesEntity) ViewData["NoticeFilter"]; } <div class="form-group"> <label>Field Office</label> <select data-bind="options: FieldOffice, value:

我有一个下拉列表,它是通过一个GetJSON调用填充的,如下所示

查看

@{
   var NoticeFilter =(X.Models.Y.Z.NoticesEntity) ViewData["NoticeFilter"];
}


<div class="form-group">
    <label>Field Office</label>
    <select  data-bind="options: FieldOffice, value: selectedFieldOffice, optionsCaption:'Choose...', optionsValue:'FieldOfficeID', optionsText:'Name'">
        @if(NoticeFilter!=null)
        {
            <option value="@NoticeFilter.FieldOfficeID" selected></option>
        }
    </select>
</div>
@{
var NoticeFilter=(X.Models.Y.Z.noticeEntity)ViewData[“NoticeFilter”];
}
外地办事处
@if(NoticeFilter!=null)
{
}
当我指向此页面并将数据发送到NoticeFilter时,我希望下拉列表中的值与其他值中的NoticeFilter中的值一起预先选择。我如何实现这一点

我想知道在razor HTML中是否有一种方法可以设置一个默认值,在从KO JS进行数据绑定后下拉。您尝试过这个吗

<script>
var str = @Html.Raw(Json.Encode(ViewData["Text"]));
</script>

var str=@Html.Raw(Json.Encode(ViewData[“Text”]);
工作 经过几次尝试后,我发现这是在我的JS中访问ViewData或ViewBag的一种方法

我使用了KO JS选项AfterRender,如下所示

看法


我不能使用它,因为我使用Knockout JS将数据绑定到下拉列表,因此出现了问题。只需将数据绑定添加到razor语句的object htmlattribute部分。“@data_bind”是“data bind”,但这会起作用吗?因为我没有为视图初始化模型,并且Noticefilter大部分时间为空。好的,忽略我当前的答案,但是用ajax调用列表,然后用jquery附加选项怎么样?我尝试了这个方法
<select  data-bind="options: SubType, value: selectedSubType, optionsValue:'SubTypeID', optionsText:'SubTypeDescription',optionsAfterRender:function(){setOptionST(@Noticefilter .SubTypeID);}"></select>
 self.setOptionST = function (x) {
        //here we can do whatever is intended to in my case to set the initial value in dropdown
        self.selectedSubType(x);
    };