@{
var Countries=Model.FirstOrDefault(x=>x.Id==**JavaScriptVariable**);
@Html.Partial("Countries", Countries)
}
我知道它可能使用ajax调用,但是如何将从服务器端返回的json结果分配给Razor c#代码,我应该在返回视图之前将值放在模型或ViewBag中,但我不知道如何编写代码。
答案 0 :(得分:3)
您不能在c#代码中使用javascript
变量。但反过来是可能的。但是,在这种情况下,您必须使用ajax本身来加载局部视图。
你可以尝试的是......
1)创建一个ActionResult,它将返回一个局部视图。 (确保将ActionResult名称设置为与部分视图名称相同,这只是为了减少代码中的混淆。)
2)然后在jquery中点击了这个ActionResult。
类似......
$.get('/YourController/'+ JavaScriptVariable +'/',function(result){
//you got the partial view here...
$('#yourDiv').append(result);
});
答案 1 :(得分:0)
您应该使用以下行在控制器中分配数据:
ViewBag.TestVariable = "Test string";
在视图中,您可以访问以下数据:
@ViewBag.TestVariable
在您的情况下,我将移动将数据分配给变量“Countries”的逻辑到控制器,然后使用ViewBag存储该数据并从View访问它。
答案 2 :(得分:0)
您可以使用JsonResult
类型:
public JsonResult fnname()
{
// Do something
return Json(youJson , JsonRequestBehavior.AllowGet);
}
Jquery调用以获取Json
$(document).ready(function() {
$.post("/controllername/fnname", { }, function (result) {
alert(result);
}, "json");
});