如何在ASP.NET MVC 2中获取html.textbox输入的值

Mag*_*age 3 asp.net asp.net-mvc asp.net-mvc-2

我目前有一个TextBox使用:

<%: Html.TextBox("TextBox1") %>

如何获取TextBox作为字符串输入的内容的值,以便我可以在整个应用程序中使用该字符串变量?

该视图让他跟随页面顶部的继承进行建模.此页面名为"InputNumbersSection":

<%: Html.TextBoxFor(m => m.Number) %>
Run Code Online (Sandbox Code Playgroud)

和行动:

<%: Html.ActionLink("Get Number!", "DisplayNumbersSection") %>
Run Code Online (Sandbox Code Playgroud)

模型有这个:

 public class NumberModels
    {
        public string Number { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

控制器具有以下内容:

public ActionResult DisplayNumbersSection(NumberModels model)
        {

            if (ModelState.IsValid)
            {
                string TextBoxValue = model.Number;
                ViewData["Number"] = TextBoxValue;
            }      
            return View();
        }
Run Code Online (Sandbox Code Playgroud)

我在另一个页面中使用的ViewData返回视图中键入的文本框中的数字.

当我在文本框中键入somthing时,我看不到该属性被击中或执行."Number"属性始终返回NULL.它似乎似乎没有把我在TextBox中键入的内容拿起来

Kel*_*sey 8

那么开始你应该有一个你的观点的模型:

public class YourModel
{
    public string YourProperty { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

您的控制器将创建初始视图:

public ActionResult YourEvent()
{
    return View(new YourModel());
}
Run Code Online (Sandbox Code Playgroud)

要创建强类型视图,您需要将以下内容添加到Page指令:

<%@ Page Title="" Inherits="System.Web.Mvc.ViewPage<YourModel>" %>
Run Code Online (Sandbox Code Playgroud)

然后在您的视图中,您可以:

<%: Html.TextBoxFor(m => m.YourProperty) %>
Run Code Online (Sandbox Code Playgroud)

然后在发布表单时在控制器中:

[HttpPost]
public ActionResult YourEvent(YourModel model)
{
    if (ModelState.IsValid)
    {
         string TextBoxValue = model.YourProperty;
         // do what you want with it
    }            
    // do something
}
Run Code Online (Sandbox Code Playgroud)

一个坚固的类型视图是最好的方法,但如果你想快速和肮脏,你可以随时访问该Request对象并检查Form.

编辑:添加强类型视图定义.