MVC:提交后检索表单值

时间:2009-10-14 05:41:06

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

我在对话框上有一个表单,如下所示:

<form action="../ControlerFunction">
    <input type=text id="id1"/>
    <input type=text id="id2"/>
    <button type="submit"> OK </button>
    <button type="button" class="close"> Cancel </button>
</form>

提交表单时它会触及我的控制器功能,但是如何检索两个文本框的值呢?

当我将表单操作更改为:

<form action="JavaScriptFunction();">
or:
<form action="JavaScriptFunction();return false;">

我将JavaScript放在同一页面上:

function JavaScriptFunction()
{
    alert("Hi!");
}

它没有达到这个功能。我错过了什么吗?

6 个答案:

答案 0 :(得分:1)

在您的控制器中添加另一个接受HTTP POST的操作方法并接收表单集合。

像:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult ControllerFunction(FormCollection collection)

善,

答案 1 :(得分:1)

更正html表单标记语法:

<form method="post" action="/controller/method/" onsubmit="yourJSFunction();">

...

这适用于所有服务器端语言和技术。

答案 2 :(得分:0)

继续@Daniel。

您可以使用MyAction [FormCollection集合],然后从集合对象中提取值。

或者,如果您有一个传递给视图的模型,您可以使用TryUpdateModel()来使用表单中的值来设置模型。

如果您需要更多内容,请发表评论,我会添加代码。

现在回家,所以当我对抗交通时会有延迟。 :)

哦,欢迎来到SO。

答案 3 :(得分:0)

首先考虑一下:

  1. FORM Tag需要方法(POST或GET);
  2. 您的INPUT标记没有名称 将用于的属性 访问价值。
  3. 附加代码:

    <form name="form1" method="POST" onSubmit="JavaScriptFunction(); return false;">
            <input type=text id="id1" name="id1"/>
            <input type=text id="id2" name="id2"/>
            <button type="submit"> OK </button>
            <button type="button" class="close"> Cancel </button>
    </form>
    

    的javascript:

    function JavaScriptFunction()
    {
        var id1Text = document.form1.elements["id1"].value; //get the value of id1
        var id2Text = document.form1.elements["id2"].value; //get the value of id2
        //do whatever you want here.
    }
    

答案 4 :(得分:0)

我想回答你的第一个问题。

  

我怎样才能检索两个文本框的值?

Daniel Elliot给出了一个答案 在为您输入标签提供了具有相同id属性值的name属性后,您可以将这些值作为参数访问您的操作方法。

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult ControllerFunction(String id1, String id2)

关于java脚本的第二个问题由Sergei

回答

答案 5 :(得分:0)

<form name="form1" method="POST" onSubmit="JavaScriptFunction(); return false;">
        <input type=text id="id1" name="id1"/>
        <input type=text id="id2" name="id2"/>
        <button type="submit"> OK </button>
        <button type="button" class="close"> Cancel </button>
</form>

的javascript:

function JavaScriptFunction()
{
    var id1Text = document.form1.elements["id1"].value; //get the value of id1
    var id2Text = document.form1.elements["id2"].value; //get the value of id2
    //do whatever you want here.
}