我有以下输入字段。

<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/

10-14 01:44