繁体   English   中英

如何将JavaScript变量传递给Razor C#代码?

[英]How to pass a javascript variable to Razor c# code?

@{
    var Countries=Model.FirstOrDefault(x=>x.Id==**JavaScriptVariable**);

    @Html.Partial("Countries", Countries)

}

我知道使用ajax调用是可能的,但是如何将从服务器端返回的json结果分配给Razor c#代码,我应该在返回视图之前将值放在模型或ViewBag中,但是我不知道如何编码。

您不能在C#代码中使用javascript变量。 但是相反的可能。 但是,在这种情况下,您必须使用ajax本身来加载部分视图。

你可以尝试的是..

1)创建一个ActionResult,它将返回部分视图。 (确保将ActionResult名称设置为与部分视图名称相同,这只是为了减少代码中的混乱。)

2)然后在jquery中点击此ActionResult。

就像是..

 $.get('/YourController/'+ JavaScriptVariable +'/',function(result){
    //you got the partial view here...
    $('#yourDiv').append(result);
 });

您应该使用以下行在控制器中分配数据:

    ViewBag.TestVariable = "Test string";

在视图中,您可以按如下方式访问此数据:

    @ViewBag.TestVariable 

在您的情况下,我将将为数据“ Countries”分配数据的逻辑移至控制器,然后使用ViewBag存储该数据并从View中访问它。

您可以使用JsonResult类型:

public JsonResult fnname()
    {
        // Do something
        return Json(youJson , JsonRequestBehavior.AllowGet);
    }

jQuery调用以获取该Json

 $(document).ready(function() {
   $.post("/controllername/fnname", { }, function (result) {
      alert(result);
   }, "json");
 });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM