簡體   English   中英

ASP.Net MVC 將值傳遞給沒有專用按鈕的控制器

[英]ASP.Net MVC Passing value to controller without dedicated button

我試圖將一個值從我的 ViewModel 傳遞給一個 postmethod,它從一個選擇列表中獲取 2 個過濾器(一個用於類型,一個用於難度)和正在過濾課程的成員的 ID。 必須將成員的 id 傳遞給 HttpPost 方法,以便 filterByDifficulty 方法知道允許成員獲得的最大難度。

簡而言之:我的 get 方法創建了一個視圖模型。 我將 viewmodel 傳遞給視圖,但我無法弄清楚如何將某個屬性從 viewmodel 傳遞給 post 方法,而不將其顯示給用戶/創建單獨的按鈕。

控制器
id 參數是我所堅持的,我試圖弄清楚如何通過視圖將它傳遞給這個方法。

[HttpPost]
public IActionResult LessonsForMember(string filter, string filter2, int id)
        {
            Person person = _personRepository.GetBy(id);
            string Difficulty = person.Difficulty.DifficultyString;
                        PersonLessonModel plm = new PersonLessonModel
            {
                Person = person,
                Types = _lessonRepository.GetTypesLimitedByDifficultyAsSelectList(Difficulty),
                Difficulties = _lessonRepository.GetDifficultiesLimitedByDifficultyAsSelectList(Difficulty),
                Lessons = _lessonRepository.GetFilteredLessons(filter, filter2);
            };
            return View(plm);
         }

看法

我試圖在某處獲取 @Model.Person.PersonId ,而不將其顯示給用戶。 我想把它一直放在底部的過濾器按鈕中,但這導致了錯誤

@model Taijitan.Models.ViewModels.PersonLessonModel

<a asp-controller="Lesson" asp-action="Index">Previous</a>
<br />
<form action="/Lesson/LessonsForMember/" method="post">
    <div class="form-inline">
        <select id="Difficulties" name="filter" asp-items="@Model.Difficulties as List<SelectListItem>" class="form-control">
            <option value="">-- All Difficulties --</option>
        </select>

        <select id="Types" name="filter2" asp-items="@Model.Types as List<SelectListItem>" class="form-control">
            <option value="">-- All Types --</option>
        </select>
        //This causes an error
        <button name="id" value="@Model.Person.PersonId" type="submit">Filter</button>
    </div>
</form>

您可以將PersonId作為隱藏輸入字段添加到表單中,並將其發布到控制器。

因此,您需要將其包含在表單底部(確保它在表單內):

@Html.HiddenFor(m => m.Person.PersonId)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM