C# 在MVC中使用HTML按钮

C# 在MVC中使用HTML按钮,c#,asp.net-mvc,model-view-controller,C#,Asp.net Mvc,Model View Controller,问这个问题我觉得有点傻,但我只想知道如何在我的控制器上用html按钮调用服务器站点操作 例如,假设我有一个文本区域和一个提交按钮。想法是单击submit按钮,文本区域中的文本将被提交到数据库。非常简单的东西 谢谢你的帮助 在视图的HTML中,文本区域和提交按钮将是表单的一部分,该表单的操作属性将指向',您将一部分放入生成该视图的同一控制器中,该视图将检查POST数据。如果有POST数据,则将其写入数据库 该表单将如下所示: <form action='' method='post'>

问这个问题我觉得有点傻,但我只想知道如何在我的控制器上用html按钮调用服务器站点操作

例如,假设我有一个文本区域和一个提交按钮。想法是单击submit按钮,文本区域中的文本将被提交到数据库。非常简单的东西


谢谢你的帮助

在视图的HTML中,文本区域和提交按钮将是表单的一部分,该表单的
操作
属性将指向
'
,您将一部分放入生成该视图的同一控制器中,该视图将检查POST数据。如果有POST数据,则将其写入数据库

该表单将如下所示:

<form action='' method='post'>
    <textarea name="text"></textarea>
    <input type="submit" value="Submit"/>
</form>

在本文中,您将看到一个变量,其键与textarea的
name
属性相匹配(在本例中为
text
)。你可以从那里读到


如果愿意,您还可以将表单上的
action
属性更改为URL,在这种情况下,您可以在该URL指向的控制器中编写检查POST数据的部分。

在视图的HTML中,文本区域和提交按钮将是表单的一部分,该表单的
action
属性将指向
'
,并且您将一个部分放入生成检查POST数据的视图的同一个控制器中。如果有POST数据,则将其写入数据库

该表单将如下所示:

<form action='' method='post'>
    <textarea name="text"></textarea>
    <input type="submit" value="Submit"/>
</form>

在本文中,您将看到一个变量,其键与textarea的
name
属性相匹配(在本例中为
text
)。你可以从那里读到

如果愿意,您还可以将表单上的
action
属性更改为URL,在这种情况下,您可以在该URL指向的控制器中编写检查POST数据的部分。

在aspx中:

     <%Html.BeginForm("Hello","Home",FormMethod.Post);%> <!--Name of method, name of controller, formmethod -->
        <input type="text" id="userName" maxlength="50" name="userName"/>
        <input id="Submit1" type="submit" value="Say Hello!" />
     <%Html.EndForm();%>
     <h2><%= Html.Encode(TempData["Message"]) %></h2>
编辑:解决有关维护URL的其他问题

实现URL“原地不动”的一种方法是“重载”控制器的索引方法,如下所示

[AcceptVerbs(HttpVerbs.Post)] //This is KEY <-----
        public ActionResult Index(string userName)
        {
            //simple example, take input and pass back out
            TempData["Message"] = "Hello, " + userName;
            return View("Index",TempData);
        }
[AcceptVerbs(HttpVerbs.Post)]//这是aspx中的关键:

     <%Html.BeginForm("Hello","Home",FormMethod.Post);%> <!--Name of method, name of controller, formmethod -->
        <input type="text" id="userName" maxlength="50" name="userName"/>
        <input id="Submit1" type="submit" value="Say Hello!" />
     <%Html.EndForm();%>
     <h2><%= Html.Encode(TempData["Message"]) %></h2>
编辑:解决有关维护URL的其他问题

实现URL“原地不动”的一种方法是“重载”控制器的索引方法,如下所示

[AcceptVerbs(HttpVerbs.Post)] //This is KEY <-----
        public ActionResult Index(string userName)
        {
            //simple example, take input and pass back out
            TempData["Message"] = "Hello, " + userName;
            return View("Index",TempData);
        }

[AcceptVerbs(HttpVerbs.Post)]//这是关键,感谢您的评论。但是,我如何定义获取textarea数据的服务器端函数呢?谢谢您的评论。但是,我如何定义获取textarea数据的服务器端函数呢?谢谢您的评论。到目前为止,这似乎已经奏效,我现在唯一的问题是,它从“Hello”操作返回后,会弄乱我的URL。您知道如何返回url中当前具有的相同控制器/操作/ID的视图吗?谢谢您的评论。到目前为止,这似乎已经奏效,我现在唯一的问题是,它从“Hello”操作返回后,会弄乱我的URL。您知道如何返回url中当前具有的相同控制器/操作/ID的视图吗?