【问题标题】:Call controller methods inside View在 View 中调用控制器方法
【发布时间】:2019-06-27 14:56:09
【问题描述】:

我有一个视图,想在其中执行一些控制器方法。

第一种方法在选择标签内添加选项;

绑定到按钮的第二种方法执行我需要的过程;

我尝试了很多来自谷歌的选项,但它甚至不允许我尝试它们。无论我尝试用它做什么,它都会显示Unterminated string literal.

how looks the error

看起来像这样:

<!DOCTYPE html>

<html>
<head runat="server">
    <title>Choose language to upload .html files</title>
</head>
<body>
    <form">
    <div>
        <h1>Choose language to upload .html files</h1>
        <select>
            /*After page is loaded, method from a controller will add options*/
        </select>
    </div>
    <button>Start</button> /*Another method from a controller will be bound to this button*/
    </form>
</body>
</html>

【问题讨论】:

  • @KevinLamb 我试过了,它显示了我在主题中提到的错误。
  • 你能在视图中展示你调用方法的方式吗?
  • @KevinLamb 添加截图
  • 有什么理由需要 location.href 吗?

标签: c# asp.net


【解决方案1】:

将文件扩展名从 .html 重命名为 .cshtml。目前,您看到的是常规 html 文件的 VS Code 的 JavaScript 错误。更改文件扩展名后,它将识别出您的文件是 Razor 视图。

另一个选项是将 VS Code 中文件的基于语言的设置设置为适当的语言。您可以通过打开pub.cshtml_virtual.html 文件来执行此操作,语言设置将在 VS Code 的右下角。

目前,pub.cshtml_virtual.html 文件将设置为HTML

单击HTML 将其更改为aspnetcorerazor(可能需要扩展才能获得该选项):

【讨论】:

  • 在您提供的屏幕截图中,文件名为pub.cshtml_virtual.html。因此,您需要将其更改为 pub.cshtml_virtual.cshtml 或者将其缩短为 pub.cshtml
  • 我的文件是 pub.cs.html,pub.cshtml_virtual.cshtml 是包含错误或其他内容的文件
  • @JimmyOcha ,澄清一下,您要修复的错误是Unterminated string literal.?该错误链接到pub.cshtml_virtual.html 文件。您需要将文件扩展名更改为.cshtml
【解决方案2】:

好的,所以您需要了解 MVC 架构以及您希望如何根据您的要求实现不同的场景。每个View 都由其关联的Controller 呈现。您可以创建一个没有关联的ModelView,并使用JavaScriptAJAX 等前端脚本技术处理View 上的所有数据。

我更喜欢的另一种技术是Model-View 绑定,您可以在其中为View 设计适当的Model 并使用Controller 绑定它们。现在根据您的要求,您可以在您的Controller 中预填充您的Model 并使用这些值呈现您的View。或者您可以在View 上使用强Model 类型绑定来设置表单数据,然后使用Form 标记将其发送到相关方法进行处理。请注意,此方法会处理您的数据,然后返回相应的View

现在转到您的案例,显示的错误是由于您的操作onclick 中的字符串文字不正确。您可以在按钮事件中使用它:

onclick="@("window.location.href='" + @Url.Action("Start", "Default") + "'");"

单击按钮后,您将被带到Default 控制器的Start 操作方法。

【讨论】:

    猜你喜欢
    • 2014-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多