在MVC3 Razor中单击提交按钮后,在标签中显示文本框文本

时间:2012-12-05 07:22:42

标签: c# asp.net-mvc razor

我的表单中有一个testbox控件和一个提交按钮控件以及一个标签控件。当我在我的testbox控件中键入一些文本并单击按钮控件时,我无法在我的标签控件中显示该文本。请帮助。

由于我是MVC的新手,并且我正在学习基础知识,如果你能给我完整的编码,那将对我非常有帮助。

您也可以将编码邮寄给我。提前谢谢。

我的代码如下:

模型

using System;
using System.Collections.Generic;
using System.Linq;

using System.Web;

namespace TestMVCProj.Models

{
     public class TestPost
     {
      public string name {get; set;}
     }
}

控制器

using TestMVCProj.Models

public ActionResult TestPost(TestPost tp)
{
    return View();
} 

查看

@model TestMVCProj.Models.TestPost
@{
     ViewBag.Title ="TestPost";
}
@using (Html.BeginForm())
{
     @Html.TestBoxFor (x => x.name)
     <input type="submit" />
}
Your Name is <%= Model.name %>

3 个答案:

答案 0 :(得分:0)

我认为您需要在发布时将模型传递给View。

public ActionResult TestPost(TestPost tp)
{
    return View(tp);
} 

答案 1 :(得分:0)

您可能需要在Controller中执行两项操作:

  1. 一个接受HTTP GET,没有参数 - 用于初始页面加载
  2. 一个接受HTTP POST,模型作为参数 - 用于回发

  3. public ActionResult TestPost()
    {
        return View();
    } 
    
    [HttpPost]
    public ActionResult TestPost(TestPost post)
    {
        return View(post);
    } 
    

    此外,由于您将Razor用于View,因此语法应如下所示:

    Your Name is @Model.name
    

答案 2 :(得分:0)

将您的观点更改为

 @model TestMVCProj.Models.TestPost
@{
     ViewBag.Title ="TestPost";
}
@using (Html.BeginForm())
{
     Html.TextBoxFor (x => x.name)
     <input type="submit" />
}
Your Name is @Model.name