这就是我的想法,但当然它不起作用。
@{
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个表格已经有一段时间了,但没有运气。这基本上是我的最后一招。
答案 0 :(得分:4)
首先,你应该使用面向viewmodel的html文件,因为你使用的是MVC( Model ,View,Controller):
创建一个viewModel:
public class ExampleViewModel
{
public ExampleViewModel()
{
}
public virtual string TextBoxData { get; set; }
}
之后,使用viewmodel将您的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
}
希望这会对你有帮助!
答案 1 :(得分:2)
如果您使用的是视图模型,请查看以下答案:MVC sending data from View to Controller
如果您只想将输入中的数据发送到没有视图模型的操作方法,那么您也可以这样做:
查看:
@using (Html.BeginForm("Edit", "Some", FormMethod.Post))
{
<input type="text" id="myTextBox" name="myTextBox" />
<input type="submit" value="Submit" />
}
注意BeginForm行。第一个参数是我希望数据进入的Action,我将其命名为Edit。下一个参数是我正在使用的控制器,我将其命名为SomeController。在BeginForm中引用Controller时,不要将Controller位添加到名称中。第三个参数告诉表单在将数据发送到服务器时使用POST方法。
控制器:
public class SomeController
{
[HttpPost]
public ActionResult Edit(string myTextBox)
{
// Do what you want with your data here.
}
}
如果您添加了更多输入(同样,此处没有视图模型),您可以将它们作为参数添加到Edit方法中。不过,这不是真正的首选方法。考虑使用视图模型。 ScottGu有一篇关于使用视图模型执行所需操作的精彩博文: