我有一个 View 文件(.cshtml),文件顶部包含此 C# block :
@{
List<string> selectedCategories = new List<string>();
}
我想在下面的 javascript block 中使用 selectedCategories 列表
@section scripts{
<script src="../../Scripts/jquery-1.6.4-vsdoc.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
$("#list-all-categories").selectable({
stop: function () {
var result = $("#selectedCategories").empty();
@selectedCategories.Clear()
$(".ui-selected", this).each(function () {
var Mytext = $(this).text();
@selectedCategories.Add(Mytext.toString());
});
}
});
});
</script>
}
所以,这根本不起作用!...根本!!!
我有一些这样的错误: - 条件编译关闭 -名称“Mytext”在当前上下文中不存在 -...
我该怎么办?! 请帮助我!
最佳答案
- Javascript 在浏览器中运行。
- Razor 代码在网络服务器中运行
你不能那样混合它们。
您需要仅使用 jQuery 创建表单元素,然后将它们发送回服务器。
<script type="text/javascript">
$(document).ready(function () {
$("#list-all-categories").selectable({
stop: function () {
$(".selectedItems").remove();
$(".ui-selected", this).each(function () {
var Mytext = $(this).text();
$('#myform').append('<input type="hidden" name="selectedCategory" value="' + MyText + '" class="selectedItems" />');
});
});
});
</script>
将“myform”更改为发布的表单。
然后你得到的项目如下:
public ActionResult YourAction(string[] selectedCategory)
{
}
关于jquery - 如何使用 Razor 在 javascript block 变量中使用 C# 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7608800/