我正在开发MVC应用程序,其中我想将Variable传递给该视图本身的JScript。 怎么做?
我想将AccessMode的值发送到Javascript 我已声明了Variable但不知道如何在JScript中使用它。
<script src="@Url.Content("~/Scripts/jquery-1.8.0.min.js")" type="text/javascript"></script>
@model CRMEntities.Settings
@{
ViewBag.Title = "CustomSettings3";
//Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>CustomSettings3</h2>
<!DOCTYPE html>
<html>
<head>
<title>CustomSettings3</title>
</head>
<body>
@{string AccessMode; }
@{string Ratings; }
<div class="editor-label">
@Html.LabelFor(model => model.AccessMode)
</div>
<div class="editor-field">
@* @Html.EditorFor(model => model.AccessMode)*@
@Html.DropDownList("AccessMode")
@Html.ValidationMessageFor(model => model.AccessMode)
//Assigning value.
AccessMode = model.AccessMode
</div>
<div class="editor-field">
@Html.DropDownList("RatingsCount")
@Html.ValidationMessageFor(model => model.RatingsCount)
@{
Ratings = Html.DropDownList("RatingsCount");
}
</div>
<p>
<input type="button" value="Save" class="SaveSettings"/>
</p>
</body>
</html>
<script type="text/javascript">
$(document).ready( function(){
$('.SaveSettings').click(function ()
{
$.ajax
({
type: 'post',
url: '@Url.Content("~/Settings/SaveBasicSettings")',
dataType: 'json',
data:
{ 'AccessMode': "@AccessMode" },
success: function (data)
{
}
});
});
});
</script>
答案 0 :(得分:3)
鉴于AccessMode
只是视图中定义的字符串变量,并且您的JS嵌入在同一视图中,您可以通过标准方式将变量的值简单地写入JS:
{ 'AccessMode': "@AccessMode" },
一旦将JS移动到单独的文件(如果您选择这样做),另一种方法就是将AccessModel值存储为编辑器字段中的数据属性。
这样你的javascript就可以像在页面上的任何其他属性一样轻松地选择它。
<强>更新强>
您分配价值的方式还需要调整:
@{
AccessMode = Model.AccessMode
}
答案 1 :(得分:0)
如果您的值设置正确,则可以将其存储在隐藏变量中并在javascript中读取
在视图中
<div class="editor-label">
@Html.LabelFor(model => model.AccessMode)
</div>
<div class="editor-field">
@* @Html.EditorFor(model => model.AccessMode)*@
@Html.DropDownList("AccessMode")
@Html.ValidationMessageFor(model => model.AccessMode)
//Assigning value.
AccessMode = model.AccessMode
@Html.Hidden("modelValue", AccessMode) //set value in hidden variable
</div>
在javaScript中
<script type="text/javascript">
$(document).ready(function () {
$('.SaveSettings').click(function () {
var modelValue = $("#modelValue").val();
$.ajax
({
type: 'post',
url: '@Url.Content("~/Settings/SaveBasicSettings")',
dataType: 'json',
data: { 'AccessMode': modelValue },
success: function (data) {
}
});
});
});
</script>
注意:检查是否在隐藏变量中的model.AccessMode中正确设置了值。