我一直在努力使用这个函数过去一小时了,我不知道出了什么问题,我有一个函数需要调用一个控制器动作并填充一个下拉列表,代码似乎失败就行了我声明了url,它以undefined失败并抛出上面的异常,任何想法如何解决这个问题,任何帮助都将非常感激。
这是我的下拉定义
// ...
ss, _ := cards.SubStack(1, 3) // ss now holds {Kc, 8d}
ss.Print() // Prints {Kc, 8d}
cards.Print() // Prints {5c, Kc, 8d} (assigned somewhere up in the code)
cards.DrawCards(ss) // Draws {Kc, 8d} from {5c, Kc, 8d}
cards.Print() // Prints {5c} - as expected
ss.Print() // Prints {8d, 8d} - ???
这是我的Jquery请求
<div class="form-group">
@Html.LabelFor(m => m.Town, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.DropDownList("Town", ViewBag.Town as SelectList)
</div>
</div>
<div class="form-group">
@Html.Label("Surburb", new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.DropDownList("Surburb", new SelectList(string.Empty, "Value", "Text"), "Please select a Surburb", new { style = "width:250px", @class = "dropdown1" })
</div>
</div>
答案 0 :(得分:1)
它应该是Url.Action
html辅助方法。
var url = '@Url.Action("GetSurburbs", "Account")';
假设此代码位于剃刀文件中。
这将执行Url.Action
并设置返回值,这是GetSurburbs
操作方法到url
变量的正确相对路径。
上面的代码在剃刀文件中时会起作用,因为剃刀文件在服务器上执行。但是如果您不想在js代码中调用html辅助方法,则可以将此url值保留在视图标记中,并根据需要从js中读取。
@Html.DropDownList("Surburb", new List<SelectListItem>(), "Please select a Surburb",
new { style = "width:250px", @class = "dropdown1",
data_url=Url.Action("GetSurburbs","Account") })
这将为您的SELECT元素生成data-url属性。现在只需读取此值并在您的JavaScript代码中使用。
var url = $("#Surburb").data("url");
答案 1 :(得分:1)
您错误地定义了网址。您需要使用@ Url.Action扩展
<script type="text/javascript" src="~/Scripts/jquery-1.10.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("#Town").change(function () {
debugger;
var url = '@Url.Action("GetSurburbs", "Account")';
$.post(url,{id : $("#Town").val()}).done(function(data){
alert('Success');
}).fail(function(data){
alert('failed');
});
})
})
</script>