我有以下输入字段。
<input class="book_now_modal BClick" type="text" id="destinationFrom_modal" name="destinationFrom_modal" placeholder="@ViewBag.AmritsarList[0].Destination">
我不时要更改视图包中的值。是否有办法为视图包项目提供动态值。我尝试使用jquery如下所示。
$(".AClick").click(function () {
//$(".BClick").attr("placeholder"," ");
var s = parseInt($(this).attr('id'));
var neededVAl = "@@ViewBag.AmritsarList"+"["+s+"]"+".Destination";
alert(neededVAl);
var b = $(".BClick");
$(this).attr("placeholder",neededVAl);
});
像这样,我将
placeholder
替换为给出@ViewBag.AmritsarList[1].Destination
的警报,但它没有更改占位符。我该怎么做。 最佳答案
var neededVAl = "@@ViewBag.AmritsarList"+"["+s+"]"+".Destination";
您不能使用上述语句访问
ViewBag
,因为它可以在服务器端访问。您的JavaScript语句在客户端执行,无法直接访问它。但是,可以使用Json.Encode方法将数据对象转换为JavaScript Object Notation(JSON)格式的字符串。
var jsObject = @Html.Raw(Json.Encode(ViewBag.AmritsarList));
$(".AClick").click(function () {
var s = parseInt($(this).attr('id'));
var neededVAl = jsObject[s].Destination;
alert(neededVAl);
$(this).attr("placeholder",neededVAl);
});
关于c# - 如何在MVC C#中为jquery中的ViewBag赋值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36566005/