0

这是我的观点

@

using (Html.BeginForm("Display", "Home", @FormMethod.Post))
    {
    <div>Name:<a>@ViewBag.st</a><br /></div>
       <a></a>
    <div>City:<a>America</a></div>
    <br />
     <input type="submit" value="Submit" /> 
    <br />
    }

这是模型类

公共类用户 { 私有字符串 m_name = string.Empty;

public string Name
{
    get
    {
        return m_name;
    }
    set
    {
        m_name = value;
    }
}

}

这是我的控制器类

[HttpGet]
         public ActionResult Viewdetails()
         {
            User ur=new User();
            ur.Name = "Danny";
            ViewBag.st = ur.Name;
           return View();
         }

        [HttpPost, ActionName("Viewdetails")]
        public ActionResult Test()
        {
            return View();
        }
         [HttpPost]
         public ActionResult Display()
         {
             return View();
         }
    }

现在如何在我的 Viewdetails.cshtml 中显示 Danny 而不是使用

@Viewbag
4

1 回答 1

4

您可以使用输入字段,以便在提交表单时将其值发送到Display操作。另外,让我们清理一下您的代码并摆脱ViewBag.

所以你有一个很好的模型:

public class User
{
    public string Name { get; set; }
}

然后你可以有一个带有 2 个动作的控制器 - 一个填充模型并将其传递给Viewdetails.cshtml视图,另一个动作在提交表单并呈现Display.cshtml视图时调用:

public class HomeController: Controller
{
    [HttpGet]
    public ActionResult Viewdetails()
    {
        User ur = new User();
        ur.Name = "SravanKumar";
        return View(ur);
    }

    [HttpPost]
    public ActionResult Display(User ur)
    {
        return View(ur);
    }
}

然后在您的Viewdetails.cshtml视图中,您将使用模型来呈现输入字段而不是链接:

@model User
@using (Html.BeginForm("Display", "Home", FormMethod.Post))
{
    <div>Name: @Html.EditorFor(x => x.Name)</div>
    <div>City: Secunderabad</div>
    <br />
    <input type="submit" value="Submit" /> 
}

在你的Display.cshtml视野内:

@model User
<div>Thanks for choosing the name: @Model.Name</div>
于 2012-06-29T06:40:13.493 回答