不工作的默认模式粘结剂 [英] Default model binder not working
本文介绍了不工作的默认模式粘结剂的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我是一个初学者,我不知道我在做什么错在这里。在我的控制器尝试,数字对象不具有价值,同时的FormCollection显示的数字是否正确发布。
示范
公共类数字
{
公众诠释SelectedNumber;
公众诠释LastAttempt;
}
查看
@model PogodiBroj.Models.Numbers
@ {
ViewBag.Title =猜数字
}< H2>猜数字< / H><形式的行动=/首页/尝试方法=后>
< DIV>
<标签>&猜LT; /标签>
@ Html.EditorFor(X => x.LastAttempt)
@ Html.HiddenFor(X => x.SelectedNumber)<输入类型=提交值=尝试/>
< / DIV>
@ {如果(this.IsPost ==真)
{
如果(Model.SelectedNumber> Model.LastAttempt)
{
< P>我的号码是更大< / P>
}
否则,如果(Model.SelectedNumber< Model.LastAttempt)
{
< P>我的号码是小< / P>
}
其他
{
&所述p为H.;!得分&下; / P>
@ Html.ActionLink(新游戏,)
}
}
}
< /表及GT;
控制器
公共类HomeController的:控制器
{
//
// 回家/ 公众的ActionResult指数()
{
随机数发生器=新的随机(); 数字数字=新Models.Numbers();
numbers.SelectedNumber = generator.Next(100);
numbers.LastAttempt = 0; 返回查看(数字);
} 公众的ActionResult尝试(数字结果)
{
返回视图(指数,结果); //结果是两个成员设置为0
}}
解决方案
您一流的性能应符合getter和setter方法定义的:
公共类数字
{
公众诠释SelectedNumber {搞定;组; }
公众诠释LastAttempt {搞定;组; }
}
I'm a beginner and I don't know what I'm doing wrong here. In my controller attempt, the Numbers object doesn't have values while FormCollection shows that numbers are posted correctly.
Model
public class Numbers
{
public int SelectedNumber;
public int LastAttempt;
}
View
@model PogodiBroj.Models.Numbers
@{
ViewBag.Title = "Number Guessing";
}
<h2>Guess the number</h2>
<form action="/Home/Attempt" method="post">
<div>
<label>Guess</label>
@Html.EditorFor(x => x.LastAttempt)
@Html.HiddenFor(x => x.SelectedNumber)
<input type="submit" value="Try"/>
</div>
@{ if (this.IsPost == true)
{
if (Model.SelectedNumber > Model.LastAttempt)
{
<p>My number is greater</p>
}
else if (Model.SelectedNumber < Model.LastAttempt)
{
<p>My number is lesser</p>
}
else
{
<p>Score!</p>
@Html.ActionLink("New game", "")
}
}
}
</form>
Controller
public class HomeController : Controller
{
//
// GET: /Home/
public ActionResult Index()
{
Random generator = new Random();
Numbers numbers = new Models.Numbers();
numbers.SelectedNumber = generator.Next(100);
numbers.LastAttempt = 0;
return View(numbers);
}
public ActionResult Attempt(Numbers result)
{
return View("Index", result); // result has both members set to 0
}
}
解决方案
Your class properties should be defined with getters and setters:
public class Numbers
{
public int SelectedNumber { get; set; }
public int LastAttempt { get; set; }
}
这篇关于不工作的默认模式粘结剂的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文