假设我有一个包含 HelloWorld.js 文件的类库。
该文件包含几个 JavaScript 函数,例如:
function Hello_alert() {
alert("Hello World!!");
}
Run Code Online (Sandbox Code Playgroud)
和
function Hello_console() {
console.log("Hello World!!");
}
Run Code Online (Sandbox Code Playgroud)
我想要这样我就可以在ASP.NET MVC页面上单独访问 HelloWorld.js 文件内的函数,例如 Home 文件夹内的 Index.cshtml。(如果做不到这一点,我会很高兴访问 .js 文件。)
我已经将 .js 更改为 EmbeddedResource 并将其添加到程序集中,如下所示:
[assembly: WebResource("JSLibrary.Scriptss.HelloWorld.js", "application/x-javascript")]
Run Code Online (Sandbox Code Playgroud)
; 在我的 MVC 项目中引用了 DLL,并且 DLL 命名空间显示在 Intellisense 上,因此我猜测它的链接正确。
现在,我一整天都在不停地谷歌搜索,我找到了一种解决方案,可以满足我的需要,但它是针对Web Forms 的,使用 Page.ClientScript 将脚本注册到页面本身中,这允许人们调用该页面上 .js 文件内的函数。这几乎就是我想要做的,除了我在MVC中需要它,它不使用这样的“Page”类。
我发现的 closes 等价物与捆绑包有关,但我找不到任何可以遵循的教程。
那么,我的问题是,如何以某种方式从 DLL 注册 Javascript 文件,以便我能够从ASP.NET MVC项目调用它们?
- - - - 更新: - - - …
所以我认为这个问题很简单:
我有一个视图及其关联的视图模型。我在 ViewModel 中生成了一个值,并希望按照 MVVM 模式将其传递给 View 的 Code Behind 。我知道这是完全可能的,因为这基本上就是使用 INotifyPropertyChanged 和数据绑定时发生的情况,但我想将值传递到代码隐藏中的变量,而不是 XAML 组件。
举个例子,考虑这样的事情:
视图模型
public string VM_String { get; set; }View 的代码隐藏
Run Code Online (Sandbox Code Playgroud)ViewModel MyViewModel = new ViewModel; public string View_String { get; set; }
我只是想将 VM_String 中的值传递到 View_String 上,同时遵循 MVVM 原则,所以类似于:
View_String = MyViewModel.VM_String;
这不是我想要的。我希望这些值彼此解耦。
人们会如何去做这件事呢?也许与代表/活动有关?
谢谢