6
如何检索asp.net mvc中的文本框的值以将值存储到某个变量?从提交的asp.net mvc文本框获取价值点击
我在索引视图页上有一个像这样的文本框<%=Html.TextBox("testbox") %>
。
我有这样<input type="submit" />
一个按钮,我使用的是当你打开一个新的MVC应用程序,它自带的默认视图页面。
谢谢。
如何检索asp.net mvc中的文本框的值以将值存储到某个变量?从提交的asp.net mvc文本框获取价值点击
我在索引视图页上有一个像这样的文本框<%=Html.TextBox("testbox") %>
。
我有这样<input type="submit" />
一个按钮,我使用的是当你打开一个新的MVC应用程序,它自带的默认视图页面。
谢谢。
在您的控制器中;
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Search(FormCollection collection)
{
String g = collection["textFieldname"]
}
或者你可以使用;
TryUpdateModel(modelName);
以上是首选解决方案。如果您需要更多有关TryUpdateModel的信息,请发表评论,我会为您补充。
编辑:
而不是解释它让我简单地告诉你;
在你的控制器:
public class MyFormViewModel
{
public string myInput {get; set;}
}
public ActionResult Search()
{
MyFormViewModel fvm = new MyFormViewModel();
return View(fvm);
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Search(FormCollection collection)
{
MyFormViewModel fvm = new MyFormViewModel();
TryUpdateModel<MyFormViewModel>(fvm);
string userInput = fvm.myInput;
}
在视图
然后;
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<YOURNAMESPACE.Controllers.MyFormViewModel>" %>
<%= Html.TextBox("myInput", Model.myInput) %>
注意两件事。
页面继承自您在控制器中定义的模型/类。不是最好的地方,但它会做的一个例子。
另一件事是文本框的名称与模型中的属性相同。在这种情况下myInput。
当控制器执行UpdateModel时,它会反射出来,并将文本框名称与表单视图模型中字段的名称进行匹配。
有意义吗?
EDIT 2
而且不要忘了包裹在按钮和你的领域;
<% using (Html.BeginForm()) {%>
嗨,感谢您的答复......别告诉我tryupdatemodel(MODELNAME)如何与视图上的文本框任何关系...谢谢 – Josh 2009-08-31 02:35:17
通过它看上去....我的理解.. .. 但这里... <%= Html.TextBox(“myInput”,Model.myInput)%>,Model.myInput会自动映射到myFormViewModel.myinput?我认为这就是你指出的,它通过获得相关的类名来自动使用反射来解决......稍微旋转头,因为你在视图上称它为“Model.MyInput”......但我想我可能会写代码它会工作。 – Josh 2009-08-31 02:55:29
我的意思是,它将如何知道哪个模型......以及哪里...那正是我想要的 – Josh 2009-08-31 02:57:50