2013-07-25 32 views
4

我是初學者,我不知道我在這裏做錯了什麼。在我的控制器嘗試中,Numbers對象沒有值,而FormCollection顯示數字正確發佈。默認模型聯編程序不工作

型號

public class Numbers 
{ 
    public int SelectedNumber; 
    public int LastAttempt; 
} 

查看

@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> 

控制器

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 
    } 

} 

回答

8

你的類屬性應與getter和setter方法來定義:

public class Numbers 
{ 
    public int SelectedNumber { get; set; } 
    public int LastAttempt { get; set; } 
} 
+0

活頁夾需要屬性? – Nezreli

+0

是的,因爲它綁定到屬性 –

+0

是的,它是必需的,因爲表單元素綁定到視圖模型中的屬性。 –