145*_*446 5 .net asp.net-mvc razor c#-4.0 asp.net-mvc-3
我想尝试做的是在数据库上成功执行查询后显示成功消息.一切都工作正常,除了我的viewdata,在视图页面上没有显示任何内容.不知道为什么.以下是我的代码请帮帮我们.
public class SearchItem
{
[Required(ErrorMessage = "Required Field")]
public string searchItem { get; set; }
}
public ActionResult Index()
{
try
{
ViewData["SuccessMessage"] = "";
return View();
}
catch (Exception ex)
{
return View("EmptySearch");
}
}
[HttpPost]
public ActionResult Index(string searchItem)
{
try
{
............
//database query with searchItem
...............
string suceesstring = "A WAREHOUSE HOLD has been added.";
ViewData["SuccessMessage"] = suceesstring;
return View();
}
catch (Exception ex)
{
return View("EmptySearch");
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的观点页面:
@model KeleIntegratedTools.Models.SearchItem
@{
ViewBag.Title = "Great Plains hold Insert Utility";
Layout = "~/Views/Shared/_Layout.cshtml";
}
< h2>Great Plains hold Insert Utility</h2>
< p class ="PenColor" >
Please enter order number to place on warehouse hold.
Run Code Online (Sandbox Code Playgroud)
@using (Html.BeginForm("Index", "GreatPlains"))
{
< div>
< fieldset>
< legend>Order Information</legend>
<div class="editor-label">
@Html.Label("Order Number")
@Html.TextBox("searchItem")
@Html.ValidationMessageFor(m => m.searchItem)
@Html.Label(ViewData["SuccessMessage"].ToString())
</div>
<p>
<input type="submit" value="Search" />
</p>
</fieldset>
</div>
}
Run Code Online (Sandbox Code Playgroud)
你使用的是错误的方法.Label方法的第一个参数是model的属性名称.并且它生成带有="parameterValue"属性的html标签,而不是带有该文本的标签.要向用户显示消息,您应该这样做
@ViewData["SuccessMessage"]
Run Code Online (Sandbox Code Playgroud)
另外,看看TempData属性
| 归档时间: |
|
| 查看次数: |
23945 次 |
| 最近记录: |