Asp.net mvc 3 在视图Mvc3中显示模型指定的名称
这是我的看法Asp.net mvc 3 在视图Mvc3中显示模型指定的名称,asp.net-mvc-3,viewbag,Asp.net Mvc 3,Viewbag,这是我的看法 @ using (Html.BeginForm("Display", "Home", @FormMethod.Post)) { <div>Name:<a>@ViewBag.st</a><br /></div> <a></a> <div>City:<a>America</a></div> <br /&
@
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 />
}
}
这是我的控制器类
[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();
}
}
现在,如何在my Viewdetails.cshtml的my view中显示Danny,而不是使用
@Viewbag
您可以使用输入字段,以便在提交表单时将其值发送到
显示
操作。另外,让我们稍微清理一下您的代码,去掉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);
}
}
@model User
<div>Thanks for choosing the name: @Model.Name</div>
然后在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" />
}
您可以使用输入字段,以便在提交表单时将其值发送到
显示
操作。另外,让我们稍微清理一下您的代码,去掉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);
}
}
@model User
<div>Thanks for choosing the name: @Model.Name</div>
然后在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" />
}
我建议在这种情况下使用session之类的方法。它不起作用。我得到的是null值@coldtold。您是否尝试这样做:1。从
Viewdetails
中设置ViewBag
,返回您提供的页面。2.更改ViewBag中的值。3.提交到Display
,Display返回一个视图(您没有提供,或者这是与以前相同的视图?)。4.再次希望查看ViewBag中的值。是吗?然后你得到了你的答案,Darin正是我想说的。我建议在这种情况下使用类似session的方法。它不起作用。我得到的是null值@coldtold你想这样做吗:1。从Viewdetails
中设置ViewBag
,返回您提供的页面。2.更改ViewBag中的值。3.提交到Display
,Display返回一个视图(您没有提供,或者这是与以前相同的视图?)。4.再次希望查看ViewBag中的值。是吗?然后你得到了你的答案,达林正是我想说的。什么是View.cshtml
?我不明白你在说什么,也不明白你在努力实现什么。这不是我在回答中说明的吗?除了我使用了Display.cshtml
而不是View.cshtml
。如果要使用View.cshtml
可以重命名Display
操作,或者在返回视图时指定要呈现的视图名称作为第一个参数。我不希望它显示在文本框中,而是希望将其显示为一个标签,我使用@Html.LabelFor(m=>m.name)为其获取名称(属性名称)如果您希望将值传递给服务器,则需要一个输入字段,而不是我分配给name@Darin dimitrovi的Danny。否则它将丢失。如果不想让它可见,可以使用隐藏字段和标签。然后,在使用jQuery更新标签时,还必须更新隐藏字段的值,以便在提交表单时传递名称:@Html.HiddenFor(x=>x.name)
。什么是View.cshtml
?我不明白你在说什么,也不明白你在努力实现什么。这不是我在回答中说明的吗?除了我使用了Display.cshtml
而不是View.cshtml
。如果要使用View.cshtml
可以重命名Display
操作,或者在返回视图时指定要呈现的视图名称作为第一个参数。我不希望它显示在文本框中,而是希望将其显示为一个标签,我使用@Html.LabelFor(m=>m.name)为其获取名称(属性名称)如果您希望将值传递给服务器,则需要一个输入字段,而不是我分配给name@Darin dimitrovi的Danny。否则它将丢失。如果不想让它可见,可以使用隐藏字段和标签。然后,在使用jQuery更新标签时,还必须更新隐藏字段的值,以便在提交表单时传递名称:@Html.HiddenFor(x=>x.name)
。