在.NET CORE
我读this,并试图实现我的应用程序的ViewDataDictionary
但没有工作从View传递数据部分。在.NET CORE
在我看来,我有下面的代码:
@{
var myTest = new
{
UserId = "cdb86aea-e3d6-4fdd-9b7f-55e12b710f78",
UserName = "iggy",
};
}
@Html.Partial("~/Partials/test.cshtml", myTest)
和test.cshtml
很简单,当我写@Model
,我得到{ UserId = cdb86aea-e3d6-4fdd-9b7f-55e12b710f78, UserName = iggy }
我怎样才能提取此作为JSON,所以我可以读@Model.UserName
我试着使用:
<script type="text/javascript">
@
{
<text>
var obj = JSON.parse(@Model);
</text>
}
</script>
,并试图:
<script type="text/javascript">
@:var obj = JSON.parse(@Model);
</script>
,并试图:
@Html.Raw(Json.Encode(object))
但是毫无效果,任何帮助!
我遇到类似的问题来了,当我将我的.NET应用程序到.NET的核心。 在.NET我可以只返回JSON(jsonModel)在我的控制器,并用它在我看来,作为data.UserID,data.UserName(见下文调整代码以匹配您的样品)。 在.net内核中,我必须先在我的控制器中使用SerializeObject,然后在视图javascript部分中使用JSON.parse才能使其工作。
在.NET CORE以下的作品。假设你有一些模型:
public class SomeModel
{
public string UserId { get; set; }
public string UserName { get; set; }
}
在你的控制器返回JSON对象
:
using Newtonsoft.Json;
[HttpPost]
public IActionResult someAction()
{
SomeModel jsonModel = new SomeModel();
jsonModel.UserId = "cdb86aea-e3d6-4fdd-9b7f-55e12b710f78";
jsonModel.UserName = "iggy";
var serializedJsonModel = JsonConvert.SerializeObject(jsonModel);
return Json(serializedJsonModel);
}
,并在您的视图JavaScript部分你可以从你的模型值:
<script type="text/javascript">
$.post("@Url.Action("someAction", "YourController")",
function (data) {
var oJson = JSON.parse(data);
UserId = oJson.UserId;
UserName = oJson.UserName; });
</script>
如果您只对匿名类型的JSON序列化感兴趣,可以简单地声明局部的@model
为object
。
在你的主观点:
@{
var myTest = new
{
UserId = "cdb86aea-e3d6-4fdd-9b7f-55e12b710f78",
UserName = "iggy",
};
}
@Html.Partial("~/Partials/test.cshtml", myTest)
而在你test.cshtml
部分:
@model object
<script type="text/javascript">
var obj = @Html.Raw(Json.Encode(Model));
</script>
:(不幸的是没有与我的案件 –
@HasanAYousef,究竟是什么“不起作用”?是否有错误? – haim770
好吧,我的情况有点不同,因为我正在做的是将'view'转换为'string',它迄今在视图和partials中都能正常工作,但是一旦需要读取'部分'作为'JSON'发生了一些事情,并且页面没有出现,我正在使用此示例http://stackoverflow.com/a/40950901/2441637'api/returnView',我可以通过电子邮件该文件如果感兴趣。 –
请出示使用这些代码块时呈现的HTML。 – CodeCaster
@CodeCaster请亲切看到我对Haim的回答,因为我正从手机写这篇文章,难以复制/粘贴我的提交。谢谢 –
你可以使用类型类/对象而不是匿名类型吗?这样你就不会使用智能感知。 – alltej