每当我尝试使用模型将视图中的值传递给控制器时,它将在控制器中显示为null。我在项目的另一部分尝试了一些非常类似的东西,但没有遇到这个问题。为什么这会回到空?MVC 3将View从视图传递给控制器
这里是从控制器代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MovieProject2.Models;
namespace MovieProject2.Controllers
{
public class ReviewsController : Controller
{
public ActionResult Edit(int id = -1)
{
if (id < 0)
return HttpNotFound();
MovieReview review = MovieADO.getReviewByID(id);
return View(review);
}
[HttpPost]
public ActionResult Edit(MovieReview review)
{
if (review == null) return HttpNotFound();
return View(review);
}
}
查看:
@model MovieProject2.Models.MovieReview
@{
ViewBag.Title = "Edit Review";
}
@{ //Not null here
if(@Model != null) {<h2>Edit Review for @Model.MovieReviewed.Title</h2>
<h4>Reviewed by @Model.Reviewer.Username</h4>}
else{<h2>Not Found</h2>
}
}
@using (Html.BeginForm())
{
Html.ValidationSummary(true);
<fieldset>
<div class="editor-label">
@Html.LabelFor(itemModel => Model.Rating)
</div>
<div class="editor-label">
@Html.EditorFor(itemModel => Model.Rating)
@Html.ValidationMessageFor(itemModel => Model.Rating)
</div>
<div class="editor-label">
@Html.LabelFor(itemModel => Model.Review)
</div>
<div class="editor-label">
@Html.EditorFor(itemModel => Model.Review)
@Html.ValidationMessageFor(itemModel => Model.Review)
</div>
<p>
<input type="submit" value="Change" />
</p>
</fieldset>
}
型号:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace MovieProject2.Models
{
public class MovieReview
{
public int ReviewID { get; set; }
public Movie MovieReviewed { get; set; }
public User Reviewer { get; set; }
public int Rating { get; set; }
public string Review { get; set; }
public DateTime DateReviewed { get; set; }
public MovieReview() { }
}
}
也许你是从控制器意味着查看? – 2013-03-25 04:13:39
你还没有提供足够的信息。可能还没有调查过。例如'MovieReview review = MovieADO.getReviewByID(id);'这个语句是否返回行?行动方法是否获得了一个ID传递?或者它使用默认的-1(我看到问题) – 2013-03-25 04:14:31
不,它从控制器中的[HttpGet] Edit方法传递给Edit.cshtml,没有任何问题,但[HttpPost] Edit方法中的review参数返回当我点击提交时为null。 – user2206127 2013-03-25 04:17:13