添加模型'将数据转换为Post-Action.NETMVC中的另一个模型



all。这是我在.NET MVC上的第一个项目。我在行动后遇到了一个问题。我只想从模型A中获取数据并将其发布回模型B。但当我按下按钮时,所有值都会返回到数据库中。这是我的密码。(我对编码非常缺乏经验,请耐心等待。)

模型电影

public class Movie
{
public int MovieID{ get; set; }
public string MovieAdi{ get; set; }
public string MovieAciklama{ get; set; }
public int TurID { get; set; }
public int TemaID { get; set; }
public int PlatformID { get; set; }
}

型号建议

public class Suggestion
{     
public int Id { get; set; }
public string MovieAdi{ get; set; }
public string MovieAciklama{ get; set; }
public int TurID { get; set; }
public int TemaID { get; set; }
public int PlatformID { get; set; }
}

我的控制器

public ActionResult SuggestionList()
{
var model = db.Suggestion;
return View(model.ToList());
}
[HttpPost]
public ActionResult SuggestionList(Suggestion model)
{

Movie pmovie= new Movie();
pmovie.MovieAdi= model.MovieAdi;
pmovie.TurID = model.TurID;
pmovie.TemaID = model.TemaID;
pmovie.PlatformID = model.PlatformID;

db.Movie.Add(pmovie);
db.SaveChanges();

return RedirectToAction("Index"); //index.cshtml is where i show all of the movies.
}

我同时使用Displayfor和HiddeFor。这是SuggestionList.cshtml@model IEnumerable<NProject.Models.Suggestion>

@using (Html.BeginForm("SuggestionList", "Panel", FormMethod.Post))
{
<table style="position:absolute; left:35%; top:30%;">
<tr>
<th>
<label>MovieID</label>
</th>
<th>
<label>MovieAdi</label>
</th>
<th>
<label>PlatformID</label>
</th>
<th>
<label>TemaID</label>
</th>
<th>
<label>TurID</label>
</th>
<th>
<label>Add it.</label>
</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td style="padding:20px;">
@Html.HiddenFor(modelItem => item.Id)
@Html.DisplayFor(modelItem => item.Id)
</td>
<td>
@Html.HiddenFor(modelItem => item.MovieAdi)
@Html.DisplayFor(modelItem => item.MovieAdi)
</td>
<td>
@Html.HiddenFor(modelItem => item.PlatformID)
@Html.DisplayFor(modelItem => item.PlatformID)
</td>
<td>
@Html.HiddenFor(modelItem => item.TemaID)
@Html.DisplayFor(modelItem => item.TemaID)
</td>
<td>
@Html.HiddenFor(modelItem => item.TurID)
@Html.DisplayFor(modelItem => item.TurID)
</td>
<td>        
<button class="btn btn-success">Add the suggestion.</button>
</td>
</tr>
}
</table>
}

首先,视图中的每一行都必须有自己的形式。

其次CCD_ 2模型值变为"0";项目Id";但是你的模型属性是";Id"名称"。。。而不是项"xx";。所以你应该像@Html.Hidden("Id",value)一样使用

@foreach(var item in Model){
@using (Html.BeginForm("SuggestionList", "Panel", FormMethod.Post)){
<tr>
<td style="padding:20px;">
@Html.Hidden("Id",item.Id)
@Html.DisplayFor(modelItem => item.Id)
</td>
<td>
@Html.Hidden("MovieAdi",item.MovieAdi)
@Html.DisplayFor(modelItem => item.MovieAdi)
</td>
.....
.....
.....
<button class="btn btn-success">Submit</button>
}
}

最新更新