我想去这个adres。在项目中,我们首先创建一个调查。然后单击调查旁边的按钮查看调查的问题。
Survey's List. And "Soruları Gör" is that button.
当按钮被点击时,我们转到另一个控制器的索引页。像这样,Survey's Questions' Index Page. Click on the button in the box to add a new question to the survey.
我想将调查的id发送到新的问题页面,并在该页面上显示它。new question creation page
我希望调查Id出现在图片3中的红色框中。
This view belongs to the 2nd picture.
@model IEnumerable<PerformansTakipAnket.Models.View_Base_UyeAnketSorular_Getir>
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<p>
@Html.ActionLink("Yeni Soru", "Create")
</p>
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.UyeAnketID)
</th>
<th>
@Html.DisplayNameFor(model => model.uyeAnketSoruID)
</th>
<th>
@Html.DisplayNameFor(model => model.UyeAnketSoruTip)
</th>
<th>
@Html.DisplayNameFor(model => model.UyeAnketSoruUstID)
</th>
<th>
@Html.DisplayNameFor(model => model.uyeAnketSoruBaslik)
</th>
<th></th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.UyeAnketID)
</td>
<td>
@Html.DisplayFor(modelItem => item.uyeAnketSoruID)
</td>
<td>
@Html.DisplayFor(modelItem => item.UyeAnketSoruTip)
</td>
<td>
@Html.DisplayFor(modelItem => item.UyeAnketSoruUstID)
</td>
<td>
@Html.DisplayFor(modelItem => item.uyeAnketSoruBaslik)
</td>
<td>
@Html.ActionLink("Cevapları Gör", "Index", "Cevap", new { id = item.uyeAnketSoruID }, null) |
@Html.ActionLink("Details", "Details", new { id = item.uyeAnketSoruID }) |
@Html.ActionLink("Delete", "Delete", new { id = item.uyeAnketSoruID })
</td>
</tr>
}
</table>
public ActionResult Index(int id)
{
var sorular = db.View_Base_UyeAnketSorular_Getir.Where(i => i.UyeAnketID == id);
ViewBag.UyeAnketID = id;
return View(sorular.ToList());
}
// GET: Soru/Create
public ActionResult Create(int id)
{
@ViewBag.UyeAnketID = id;
return View();
}
// POST: Soru/Create
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "uyeAnketSoruID,UyeAnketID,UyeAnketSoruTip,UyeAnketSoruUstID,uyeAnketSoruBaslik")] View_Base_UyeAnketSorular_Getir view_Base_UyeAnketSorular_Getir)
{
if (ModelState.IsValid)
{
db.Proc_UyeAnketSorular_EkleGuncelleSil("YeniKayit", view_Base_UyeAnketSorular_Getir.uyeAnketSoruID, view_Base_UyeAnketSorular_Getir.UyeAnketID, view_Base_UyeAnketSorular_Getir.UyeAnketSoruTip, view_Base_UyeAnketSorular_Getir.UyeAnketSoruUstID, view_Base_UyeAnketSorular_Getir.uyeAnketSoruBaslik);
db.SaveChanges();
return RedirectToAction("Index", new { @id = view_Base_UyeAnketSorular_Getir.UyeAnketID });
}
return View(view_Base_UyeAnketSorular_Getir);
}
我希望我能告诉你问题所在。
发布于 2018-06-24 03:20:15
您必须将SurveyId从操作方法传递到问题列表视图,并在呈现"create“链接时使用它将surveyId添加为查询字符串。
看起来您没有视图模型,在这种情况下,您可以使用ViewBag来传递此数据。
public ActionResult Index(int id)
{
var questions = db.Questions.Where(a=>a.SurveyId==id).ToList();
ViewBag.SurveyId = id;
return View(questions);
}
现在,在您的视图中,您可以使用此ViewBag项值来填充您的ActionLink
辅助方法的RouteValueDictionary参数。
@Html.ActionLink("Yeni Soru", "Create",new { surveyId= ViewBag.SurveyId })
假设您的Create
操作方法有一个名为surveyId
的参数
public ActionResult Create(int surveyId)
{
// Use surveyId as needed ( Pass to view via ViewBag/ViewModel)
// to do :return something
}
我还建议查看视图模型,而不是通过ViewBag/ViewData传递数据。这更像是一种干净的方法。
https://stackoverflow.com/questions/51004290
复制相似问题