首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >@ Html.ActionLink可以使用id发送,并在其他视图中查看id

@ Html.ActionLink可以使用id发送,并在其他视图中查看id
EN

Stack Overflow用户
提问于 2018-06-24 03:09:36
回答 1查看 44关注 0票数 0

我想去这个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中的红色框中。

代码语言:javascript
复制
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>

代码语言:javascript
复制
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);
        }

我希望我能告诉你问题所在。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-24 03:20:15

您必须将SurveyId从操作方法传递到问题列表视图,并在呈现"create“链接时使用它将surveyId添加为查询字符串。

看起来您没有视图模型,在这种情况下,您可以使用ViewBag来传递此数据。

代码语言:javascript
复制
public ActionResult Index(int id)
{ 
   var questions = db.Questions.Where(a=>a.SurveyId==id).ToList();
   ViewBag.SurveyId = id;
   return View(questions);
}

现在,在您的视图中,您可以使用此ViewBag项值来填充您的ActionLink辅助方法的RouteValueDictionary参数。

代码语言:javascript
复制
@Html.ActionLink("Yeni Soru", "Create",new { surveyId= ViewBag.SurveyId })

假设您的Create操作方法有一个名为surveyId的参数

代码语言:javascript
复制
public ActionResult Create(int surveyId)
{
  // Use surveyId as needed ( Pass to view via ViewBag/ViewModel)
  // to do :return something
}

我还建议查看视图模型,而不是通过ViewBag/ViewData传递数据。这更像是一种干净的方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51004290

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档