【问题标题】:razor mvc trying to use button click to invoke server methodrazor mvc 尝试使用按钮单击来调用服务器方法
【发布时间】:2023-04-03 13:19:02
【问题描述】:

某处?多次看到这个问题,但解决方案不起作用..

上面的按钮定义是标准的。但是,这里要问的问题是如何在点击发生时在任何地方调用任何方法?我可以使用标签作为链接;我想使用一个按钮。
答案将是需要做什么: 一个按钮,当单击该按钮时,可以调用其中一个控制器上的某些方法?

razor MVC 网页。添加一个按钮并调用一个方法,可能传递数据?所以控制器中的 C# 代码中的一些东西。

更新:问题太混乱、模糊、不够清楚。

把它放到 details.cshtml 页面中。按钮单击现在调用控制器“索引”中的方法“测试”。网页崩溃说不,没有 Actionresult 也没有找到用于测试的视图控制器,查看 /Index/test (以及大约 10 个其他文件位置)

这可能很有用,但目标是调用一些可以执行一些 c# 代码的方法,修改网页内容然后返回并继续原处

现在发生的事情不应该是按钮单击拉出一个新网页。应该发生的是调用按钮单击方法,它是一个空的“返回”,并且页面只是继续原来的位置。

添加了一个测试视图。现在?空白页

【问题讨论】:

  • 请修正您的问题以提供更多详细信息。
  • 不太清楚你的问题是什么,但最好的猜测是你想处理一个按钮的点击事件,调用一个返回一些数据的控制器方法,然后用这些数据更新现有页面。如果是这样,那么您需要使用 ajax 调用服务器并返回部分视图或 json,然后使用返回的数据更新 DOM。
  • @MaxPower,您不必渲染整个页面。如果您只想将一个控件的值发送到控制器,或者更新一个 html 元素的值,您可以使用 ajax 轻松完成。我建议你花点时间学习 jquery。

标签: javascript c# asp.net-mvc razor


【解决方案1】:

有几个示例说明了它的工作原理,您确实应该在您尝试过的内容中提供更多详细信息。但除了这些技巧之外,我强烈建议您使用纯 html 而不是 WebForms 术语,例如 Button_Clicks。

当您使用 html 进行思考时,您可以提交或“发布”表单。正如您已经发现的那样,一个表单可以发布到一个操作。但是没有什么能阻止您在页面上创建多个表单。

这绝对不是最有说服力的解决方案,但它正是您所要求的并且它会起作用:

<!-- button1 -->
@Html.BeginForm("Action1", "ControllerName", new { ... parameters ... }) {
    <button type="submit">Button1</button>
}

<!-- button2 -->
@Html.BeginForm("Action2", "ControllerName", new { ... parameters ... }) {
    <button type="submit">Button2</button>
}

随意重复它,您就可以拥有您能想象到的最棒的按钮。如果您想创建 AJAX 调用而不是表单发布,请查看 Html.AjaxForm 而不是 Html.BeginForm。

【讨论】:

  • 我没有投票给你,马克斯。我给了你一个答案。请详细说明您对答案的不满意之处?
  • 尝试使用&lt;input type="submit" /&gt; 而不是 type=button。
  • 不,它没有按预期工作,我的测试方法只是返回 void。网页抛出错误说没有关联的视图?只是想让它回到原来的位置。现在我必须添加一个新视图?只是希望它在后台处理数据并更新一些菜单项。为什么它需要一个视图来重新生成整个页面内容?为什么它不能在另一段代码上做一些子程序并回到原来的位置?
  • 您上一条评论中有四个问题。这使得每个人都很难知道你到底在做什么。也许您应该使用所有代码的完整、可重现的示例来更新您的原始问题 - 并且可能创建一个更具体的问题。提示:在写作之前花点时间仔细考虑一下。
猜你喜欢
  • 1970-01-01
  • 2020-02-01
  • 2013-12-11
  • 1970-01-01
  • 2018-08-24
  • 2017-11-23
  • 2020-01-10
  • 2017-10-23
  • 2013-01-26
相关资源
最近更新 更多