在 @ Block Razor 中使用 jQuery 变量
use jquery variable in @ block razor
我正在 cshtml 页面中使用 jquery 脚本。简而言之,我的问题是如何在 cshtml 页面的 @ 语句中使用 var?
下面是我正在尝试的示例:
<select id="DefaultText">
<option value="-1">-- select --</option>
@foreach( var d in Model.DefaultTexts )
{
<option value="@d.Id" >@d.Name</option>
}
</select>
<script type="text/javascript">
$('#DefaultText').change(function () {
var id = parseInt($('#DefaultText :selected').val());
var text = @Model.DefaultTexts.First( t => t.Id == id );
$('#CustomProductText').val(text);
});
</script>
我无法访问变量 ID。这超出了范围。我也尝试过使用 for 循环和 if 语句。但是在 if 语句中,我得到同样的错误:超出范围。
完整的故事是这样的:在我的页面上,我有一个下拉列表。要选择的项目是默认文本部分的短名称。根据 id 或名称,我想在文本框中显示默认文本部分。
#CustomProductText 是我的文本框,应该放置内容(代码未发布)。
我也尝试过@:和语句,但没有奏效。
我做错了什么,或者甚至不可能我想要做什么。
作为替代方案,我向控制器添加了一个操作以将文本表单获取到那里。代码下方:
<script type="text/javascript">
$('#DefaultText').change(function () {
var id = parseInt($('#DefaultText :selected').val());
$.post("Categories/GetDefaultText", { Id: id }, function (data) {
alert(data);
});
//$('#CustomProductText').val(text);
});
</script>
控制器代码:
[HttpPost]
public ActionResult GetDefaultText(int id)
{
using( var context = new MyContext() )
{
var text = context.DefaultText.First( d => d.Id == id ).Text;
return this.Content( text );
}
}
这行不通。在调试模式下不会命中该操作。
问候
丹尼尔
不适合
您的$.post
,您应该在 url 前面加上/
符号,它会按预期被击中:
$.post("/Categories/GetDefaultText", { Id: id }, function (data) {
alert(data);
});
至于剃刀解决方案,你不能在剃刀代码中使用javascript变量,因为它不是一种脚本语言。Razor 所做的只是简单地将字符串(无论是 html 还是 javascript 或任何内容)渲染到页面中。
要执行所需的操作,您需要请求服务器将文本传递到您的页面,或者渲染页面中的所有文本,然后在 javascript 中访问这些渲染的内容。
相关文章:
- jQuery变量错误
- HTML 按钮点击函数无法使用 jQuery 变量作为参数
- angularjs:访问angular控制器中的jquery变量
- 使用jquery变量作为.net MVC中ActionLink的参数
- 如何插入js/jquery变量isideHTML标记
- Jquery变量类型问题
- 带有.css()串联问题的jQuery变量
- .validate规则:检查jquery变量
- 检索本身包含变量的 Jquery 变量名的值
- 简单的 Jquery 变量问题
- 使用带有返回的 Jquery 变量的正确语法
- 动态jQuery变量名
- 从jQuery变量中提取数据,增加's left,将剥离的数据放回变量中
- 当chrome检查器为jQuery变量返回[object object]时,如何返回实际数据
- 无法将jQuery变量集成到php中
- jQuery变量$$符号是什么意思
- 如何获取 jquery 变量 childeren
- 对API字符串中的JQuery变量使用split()
- Jquery变量错误
- 使用easyscroll时,jquery变量在url中没有更改