Javascript调用控制器来填充文本框
我试图启用一个编辑按钮来使用Javascript,将json查询发布到我的MVC控制器以获取数据,然后使用json查询返回的数据填充一个表单(客户端)。我失败了。我不确定我做的是否正确 我正在视图上显示“子类别”列表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">
@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}