怎么访问项目里的html文件,如何访问.cshtml razor文件中的项目属性?

你真的不应该被直接调用ConfigurationManager你的看法。在MVC中,视图应该是'愚蠢的',即不具备数据结构或后端的任何知识,并且通过直接调用ConfigurationManager您的视图太了解您的设置存储方式。如果您将设置更改为使用其他商店(即数据库),那么您必须更改视图。

因此,您应该在别处获取该值并将其传递给您的视图,以便您的视图只需处理它就可以了。你可能有2种选择:

添加的东西到ViewBag并抓住它在视图

渲染从通过一个强类型的视图模型的局部视图公共控制器的操作。

我会阻止选项1,因为通常避免ViewBag是很好的,因为它没有强类型(Is using ViewBag in MVC bad?)。此外,要做到这一点,你必须从每个控制器的BaseController继承,这可能会很痛苦,或者创建一个覆盖ActionExecuted并填充ViewBag那里的东西的全局动作过滤器。

选项2可能更好。我想创建一个共同的控制器是这样的:

public class CommonController : Controller

{

[ChildActionOnly]

public ViewResult Settings()

{

// Get some config settings etc here and make a view model

var model = new SettingsModel { Foo = myProject.Properties.Settings.Default.foo };

return View(model);

}

}

然后在您的布局文件,你可以拨打:

@Html.Action("Settings", new { controller = "Common" })

这使得一个强类型的局部视图(〜/查看/通用/设置。 CSHTML),它看起来像:

@model YourProject.Models.SettingsModel

@if(Model.Foo)

{

// So something

}

这样,你仍然在使用强类型模型和视图,布局视图保持清洁,简单,你的部分观点仍然是“哑巴”

app_code文件的.cshtml文件通常不能智能提示,因为.cshtml文件Razor视图页面,它包含了HTML和C#代码,但在实际编译过程,它会被转换成.cs文件。而智能提示往往依赖于代码的静态分析和类型推导,但由于.cshtml文件在运行时被编译成.cs文件,所以编译器无法预测和理解其包含的逻辑。因此,在编辑.cshtml文件时,我们通常会失去智能提示的功能。 然而,我们依然可以通过其他方式来补充缺失的智能提示功能。一种方法是使用HTML编辑器或第三方插件,这些工具通常会提供一些基本的HTML标签和属性的智能提示。另外,一些现代的集成开发环境(IDE)还提供了对Razor视图页面的即时预览和实时错误检查功能,帮助开发者更快速地定位问题。 此外,我们还可以在Razor视图页面手动编写针对特定对象和方法的智能提示。例如,可以使用@model关键字指定视图页面对应的模型类型,并在页面针对该模型类型进行代码补全和智能提示。另外,我们还可以使用@using关键字引入命名空间,以便在视图页面使用该命名空间下的类和方法,并获得相应的智能提示。 总之,尽管app_code文件的.cshtml文件通常不能享受到完整的智能提示功能,但我们可以通过使用适当的编辑器、插件和手动编写补充代码等方式来提高开发效率和代码质量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值