这是我的观点
@
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 />
}
这是模型类
公共类用户 { private string 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
答案 0 :(得分: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>