我正在尝试从我的控制器中获取用户名值,但我得到一个null:
以下是我的观点:
<form action="Home/Save" method=post >
名称: @ Html.TextBox( “名称”) `
这是我修改过的控制器:
public class HomeController : Controller
{
public ActionResult Index()
{
ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";
return View();
}
[HttpPost]
public ActionResult Save()
{
ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";
return View();
}
我想更改此代码,以便我可以在“保存”操作中捕获文本框值。
如果我错过了什么,请告诉我。 感谢
答案 0 :(得分:0)
您是否尝试将视图控件放在Form中?
答案 1 :(得分:0)
我假设你的编辑器模板只包含html布局代码。如果是这种情况,那么您没有获得该值的原因是因为您没有将html控件放在表单中。
为了让控制器获取值,您需要通过表单发布它,比如
@using(Html.BeginForm("Submit")){
EmpNo:
@Html.EditorFor(model => model.userName)
<br/>
Password:
@Html.EditorFor(model => model.pwd)
<br/>
<input type=submit id=sbmt value=save />
}
注意,我的语法只有在你使用Razor模板和MVC 3时才有效。另外,服务器端控件实际上是用于asp.net webform,尽量不要在MVC中使用它。你应该是javascript代码隐藏和显示面板。
答案 2 :(得分:0)
答案 3 :(得分:0)
第1步:创建简单兴趣模型
namespace CalculateSimpleInterest.Models
{
public class SimpleInterestModel
{
public decimal Amount { get; set; }
public decimal Rate { get; set; }
public int Year { get; set; }
}
}
第2步:创建一个在UI上呈现视图的操作方法
我们正在传递一个要绑定到视图的空模型。
public ActionResult SimpleInterest()
{
SimpleInterestModel model = new SimpleInterestModel();
return View(model);
}
第3步:创建强类型视图
@model CalculateSimpleInterest.Models.SimpleInterestModel
@{
ViewBag.Title = "SimpleInterest";
}
<h2>Calulate Simple Interest</h2>
@using (Ajax.BeginForm("CalculateSimpleInterestResult","CalculateSimpleInterest",
new AjaxOptions { UpdateTargetId = "divInterestDeatils" }))
{
<fieldset>
<legend>Calulate Simple Interest</legend>
<div id="divInterestDeatils"></div>
<div class="editor-label">
@Html.LabelFor(model => model.Amount)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Amount)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Rate)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Rate)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Year)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Year)
</div>
<p>
<input type="submit" value="Calculate" />
</p>
</fieldset>
}
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
第4步:创建一个处理POST请求并处理数据的操作方法
在动作方法中,我们传递一个模型作为参数。该模型具有UI输入字段数据。在这里,我们不需要解析,也不需要编写额外的代码。
[HttpPost]
public ActionResult CalculateSimpleInterestResult(SimpleInterestModel model)
{
decimal simpleInteresrt = (model.Amount*model.Year*model.Rate)/100;
StringBuilder sbInterest = new StringBuilder();
sbInterest.Append("<b>Amount :</b> " + model.Amount+"<br/>");
sbInterest.Append("<b>Rate :</b> " + model.Rate + "<br/>");
sbInterest.Append("<b>Time(year) :</b> " + model.Year + "<br/>");
sbInterest.Append("<b>Interest :</b> " + simpleInteresrt);
return Content(sbInterest.ToString());
}