gpt4 book ai didi

javascript - 在 Razor View @{ block 中访问 C# 代码

转载 作者:行者123 更新时间:2023-11-30 06:34:12 29 4
gpt4 key购买 nike

如果我的术语不正确,我深表歉意。我刚刚开始一个使用 Javascript 和 asp.net 的项目。我对两者都不是很熟悉,并且正在尝试实现一些简单的功能或修复错误。目前 Razor View 看起来像:

@{
string rootUrl = Url.Action(MVC.Files.Files(Model.Id, null));
Html.Telerik().ScriptRegistrar().Scripts(wa => wa.AddSharedGroup(@Url.AssetName(AssetGroups.FileBrowser))
.AddSharedGroup(@Url.AssetName(AssetGroups.SinglePageApps)))
.OnDocumentReady(
@<text>
window.fileBrowser = fileBrowser('ls', 'file_breadcrumb', '@Model.Path', '@rootUrl');

var runLink = "@Url.Action(MVC.Runs.Run(Model.Id, Model.ExperimentName.ToLegalUrl()))";

// checking for the model
if (@((Model.HasSettings.ToString().ToValue()) == true)) {
console.log("true");
}
else {
console.log("false");
}

window.leftNav = new NavView({
el: "#navview",
collection: new NavItems(),
items: [

我的页面模型有一个属性 HasSettings。基于 HasSettings,我想用某些项目填充代码底部的 items 数组。我不知道这个的语法。

我最初是从

开始的

if ('@Model.HasSettings') {

并且一直在尝试不同的形式,但我真的不确定检查它的语法是什么,以便我可以填充我的项目数组。我知道如果我查看此 @ block 之外的 Model.HasSettings,它的计算结果为 True 或 False。然后当我运行该页面时,在控制台中显示 True 或 False 未定义。

我的第一个问题是什么是正确的语法?

我的第二个问题是,我是否应该只复制并粘贴整个 block

window.leftNav = new NavView({
el: "#navview",
collection: new NavItems(),
items: [

进入每个 if/else 语句,只有项目数组不同。还是有更清洁的方法来做到这一点?提前致谢!

最佳答案

window.leftNav = new NavView({
el: "#navview",
collection: new NavItems(),
items: [
@foreach(Setting item in Model.Settings){
.... output items as javascript objects here
}
]});

关于javascript - 在 Razor View @{<text> block 中访问 C# 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15627798/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com