gpt4 book ai didi

c# - ASP.NET MVC 2 中制作按钮单击显示文本的最简单(正确)方法是什么?

转载 作者:太空宇宙 更新时间:2023-11-03 14:27:40 25 4
gpt4 key购买 nike

我需要做一个快速演示,展示如何在 ASP.NET MVC 页面上进行交互

我在 Visual Studio 2010 中打开了一个 ASP.NET MVC 项目,将 View 置于设计模式,拖入一个按钮,双击它并再次查看 View 。我期待看到生成一些精巧的 JQuery 代码,但却是 <asp:Button>和一个 <script runat="server"> block 已创建,这似乎是 经典 ASP.NET 和 ASP.NET MVC 隐喻的混合。我不认为这是在 MVC 中构建交互性的推荐方式,对吧?

那么对于我来说,最简单、最标准的 MVC 方法是什么(1)创建一个按钮,(2)当按钮被点击时,在我的 View 中更改一些文本?

  • 在 MVC 中使用 runat-server block 真的是最佳实践吗?
  • 是否有一些简单的向导可以生成 JQuery 交互性,以便我可以以最佳实践 MVC 方式执行此操作?
  • 还是我需要像在没有 ASP.NET MVC 的纯 HTML 页面上那样自己实现 JQuery?

查看:

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>

<script runat="server">

protected void Button1_Click(object sender, EventArgs e)
{

}
</script>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Home Page
</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<form id="form1" runat="server">
<h2><%: ViewData["Message"] %></h2>
<p>

<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />

</p>
</form>
</asp:Content>

最佳答案

您不应在 asp.net MVC 中使用 asp.net ajax 控件。如果您想创建一个按钮,只需编写一些老式的 html,例如:

<input type="button">Button</input>

然后如果你需要这个按钮来做一些 Action ,只需编写新的 Action 而不是像代码隐藏方法那样调用它:

<input type="button" onclick="javascript:window.location = 'http://mypage.com/mycontroller/buttonaction' />

或者甚至更好地使用 mvc 内置的 html 帮助程序创建链接而不是按钮:

<%= Html.ActionLink("Do something" ,"ButtonAction") %>

越快,你就越能捕获它。你需要戒掉 asp.net ajax 的习惯。没有回发或背后的代码,它被删除是有原因的。 MVC 由执行的操作控制,这意味着您通过调用指定的链接来控制应用程序。通过使用纯 html,您可以更好地控制应用程序中的输出代码和操作流。

请记住,MVC 不是新的 ASP.NET AJAX,这两者会结合在一起,所以如果这种编写应用程序的风格不适合您,那么您不需要使用它。这只是选择哪种技术更适合您和您的项目。

另请访问 asp.net mvc webpage 了解有关 mvc 的更多信息.我特别推荐你看一些像this one这样的视频。 .它肯定会帮助您更好地理解什么是 mvc 以及它的优点和缺点。

关于c# - ASP.NET MVC 2 中制作按钮单击显示文本的最简单(正确)方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3458170/

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