Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.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_Asp.net Mvc - Fatal编程技术网

Javascript调用控制器来填充文本框

Javascript调用控制器来填充文本框,javascript,asp.net-mvc,Javascript,Asp.net Mvc,我试图启用一个编辑按钮来使用Javascript,将json查询发布到我的MVC控制器以获取数据,然后使用json查询返回的数据填充一个表单(客户端)。我失败了。我不确定我做的是否正确 我正在视图上显示“子类别”列表 @foreach (var sub in Model.SubCategories) { <div class="row"> <div class="col-sm-3">

我试图启用一个编辑按钮来使用Javascript,将json查询发布到我的MVC控制器以获取数据,然后使用json查询返回的数据填充一个表单(客户端)。我失败了。我不确定我做的是否正确

我正在视图上显示“子类别”列表

@foreach (var sub in Model.SubCategories)
        {
            <div class="row">
                <div class="col-sm-3">

                    @Html.ActionLink(" ", "DeleteSubCategory", "Category", new { subCategoryId = sub.Id }, new {@class="glyphicon glyphicon-remove", @title="Delete"}) 
                    <a href="#" class="glyphicon glyphicon-edit btnEditSubCategory" onclick="populateSubCategory(@sub.Id);"></a>

                    @sub.Description
                </div>

            </div>

        }
注意,我的控制器现在什么也不做。我只是想填充文本框。但是
子类别ID
始终为空

此外,当我尝试赋值时,我得到:

JavaScript运行时错误:无法设置未定义或空引用的属性“value”

包含我要填充的编辑框的表单如下:

<form class="form-horizontal well">
<div class="form-group">
    <label for="txtSubCategoryName" class="col-lg-4 control-label">Sub Category Name:</label>
    <div class="col-lg-8">
        <input type="text" class="txtSubCategoryName form-control" placeholder="The description of the Sub Category" />
    </div>
</div>
<div class="form-group">
    <label for="cmbCostCentre" class="col-lg-4 control-label">Default Cost Centre:</label>
    <div class="col-lg-8">
        <select class="form-control cmbCostCentre">
            <option value="0">None</option>
            @foreach (var cc in Model.AvailableCostCentres)
            {
                <option value="@cc.Value">@cc.Text</option>
            }
        </select>
    </div>
</div>
</form>

子类别名称:
默认成本中心:
没有一个
@foreach(模型中的var cc.AvailableCostCentres)
{
@抄送文本
}

将ajax调用中的数据参数更改为:

{subCategoryId :id}

说它“失败”就等于说它“不起作用”。解释您期望发生的事情和实际发生的事情。抱歉-更新了问题。我现在使用:data:JSON.stringify({subcategory id:id})-对吗?该值现在似乎到达控制器。结果是正确的。方法正确吗?我认为你不需要字符串化。由于您将内容类型指定为JSON——并为jquery提供一个对象而不是字符串——因此jquery应该从那里获取它。我已经看到了这两种方式。
<form class="form-horizontal well">
<div class="form-group">
    <label for="txtSubCategoryName" class="col-lg-4 control-label">Sub Category Name:</label>
    <div class="col-lg-8">
        <input type="text" class="txtSubCategoryName form-control" placeholder="The description of the Sub Category" />
    </div>
</div>
<div class="form-group">
    <label for="cmbCostCentre" class="col-lg-4 control-label">Default Cost Centre:</label>
    <div class="col-lg-8">
        <select class="form-control cmbCostCentre">
            <option value="0">None</option>
            @foreach (var cc in Model.AvailableCostCentres)
            {
                <option value="@cc.Value">@cc.Text</option>
            }
        </select>
    </div>
</div>
</form>
{subCategoryId :id}