如何从文本框传值作为参数传递给操作(How to pass a value from TextBox

2019-09-21 22:15发布

这是我脑子里想的,但当然这是行不通的。

@{
    var textBoxData = form.find('input[name="textboxList"]').val();
 } 
<input type="button" value="Add"  title="Add"  onclick="location.href='@Url.Action("Create_Add", "Controller", new { textboxList = textBoxData })'" />

我应该如何传递呢? 控制器操作名称和参数是否正确。 只是,我不知道怎么去在文本框中输入值...

我有保存表单中的窗体麻烦,所以有人建议此解决方案。 代理代码如下:

<firstForm>
   textboxfor Name
   dropdownfor DType

   If DTypeDDL value is "List" then
       <secondForm>
            textboxfor nameOfItem
            submitSecondForm (using that method i mentioned above)
       </secondForm>
   End If

   submitFirstForm
</firstForm>

我一直在试图挽救2种形式的相当长一段时间,但现在没有运气。 这基本上是我的最后一招。

Answer 1:

首先,你应该有一个视图模型面向HTML文件去,因为你正在使用MVC( 模型 ,视图,控制器):

创建一个视图模型:

public class ExampleViewModel
{
    public ExampleViewModel()
    {
    }

    public virtual string TextBoxData { get; set; }
}

之后,使用视图模型为模型编写你的HTML:

@model Models.Views.ExampleViewModel
@using (Html.BeginForm())
{
<div class="editor-row">
        <div class="editor-label">
            @Html.LabelFor(model => model.TextBoxData)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.TextBoxData)
        </div>
</div>
<input type="submit" value="submit" />
}

和你的控制器:

public ActionResult Example()
{
    ExampleViewModel model = new ExampleViewModel();
    return This.View(model);
}

[HttpPost]
public ActionResult Example(ExampleViewModel model)
{
    string infoEntered = model.TextBoxData;
    // Do something with infoEntered
}

希望这个能对您有所帮助!



Answer 2:

如果您使用视图模型,看看这个答案: MVC从View将数据发送到控制器

如果你只在从输入到无视图模型的操作方法发送的数据有兴趣,你可以做到这一点,以及:

视图:

@using (Html.BeginForm("Edit", "Some", FormMethod.Post))
{
    <input type="text" id="myTextBox" name="myTextBox" />
    <input type="submit" value="Submit" />
}

注意BeginForm线。 第一个参数是我想要的数据去行动,这是我命名为编辑。 下一个参数是我使用的控制器,这是我命名SomeController。 你当你引用在BeginForm控制器不控制器位添加到该名称。 第三个参数是告诉形式的数据发送到服务器时要使用POST方法。

控制器:

public class SomeController
{
    [HttpPost]
    public ActionResult Edit(string myTextBox)
    {
        // Do what you want with your data here.
    }
}

如果添加了更多的输入(再次,这里没有一个视图模型),可以将其添加为参数编辑方法。 这不是真正的首选方法,但。 考虑使用视图模型。 ScottGu有做你需要什么,使用视图模型一个很好的博客文章:

http://weblogs.asp.net/scottgu/archive/2007/12/09/asp-net-mvc-framework-part-4-handling-form-edit-and-post-scenarios.aspx



文章来源: How to pass a value from TextBox as parameter to Action