簡體   English   中英

如何將視圖中的值傳遞給 controller?

[英]How to pass down value from view to controller?

所以我有這個視圖,我試圖將隱藏字段中的發票 object 傳遞給 controller,然后使用提交按鈕提交。

@model IEnumerable<Invoice>;
        @using (Html.BeginForm("ShowModal", "Email", FormMethod.Post))
        {
        <div class="container">
            <div class="row">
                    @foreach (var invoice in Model)
                    {
                        <div class="col-12 bg-light d-flex justify-content-center align-items-center m-lg-2 mb-lg-5">
                            <div class="m-lg-2">Číslo faktury : @invoice.InvoiceNumber</div>
                            <div class="m-lg-2">Variabilní symbol : @invoice.VariableSymbol</div>
                            <div class="m-lg-2">Datum vytvoření : @invoice.DateCreated</div>
                            @Html.ActionLink("Stáhnout","Download",invoice,new { @class = "m-lg-2 btn btn-primary"})
                            @Html.TextBoxFor(_=>invoice, new {@type="hidden", @Value=invoice})
                            <input type="submit" value="Odeslat" class="m-lg-2 btn btn-secondary showmodal" />
              
                            @Html.ActionLink("Upravit","Edit",invoice,new { @class = "m-lg-2 btn btn-warning"})
                            @Html.ActionLink("Vymazat","Remove",invoice,new { @class = "m-lg-2 btn btn-danger"})
        
                        </div>
        
                    }
                </div>
        
        </div>
        }

但是在 controller 由於某種原因我沒有收到發票 object。 我發送的方式有誤嗎?

    public IActionResult ShowModal(Invoice invoice)
    {
        //string number = invoice.InvoiceNumber;
        return PartialView("_EmailPopup");
    }

一個頁面上有多個 BeginForm 是可以的。 因此,將 BeginForm 移到 foreach 循環內,並向 BeginForm 添加一個額外參數。

您的 Controller 應具有名稱 EmailController。

    @model IEnumerable<Invoice>;
    <div class="container">
        <div class="row">
        @foreach (var invoice in Model)
        {
            @using (Html.BeginForm("ShowModal", "Email", new {invoice = invoice}, FormMethod.Post))
            {
                <div class="col-12 bg-light d-flex justify-content-center align-items-center m-lg-2 mb-lg-5">
                <div class="m-lg-2">Číslo faktury : @invoice.InvoiceNumber</div>
                <div class="m-lg-2">Variabilní symbol : @invoice.VariableSymbol</div>
                <div class="m-lg-2">Datum vytvoření : @invoice.DateCreated</div>
                @Html.ActionLink("Stáhnout","Download",invoice,new { @class = "m-lg-2 btn btn-primary"})
                @Html.TextBoxFor(_=>invoice, new {@type="hidden", @Value=invoice})
                <input type="submit" value="Odeslat" class="m-lg-2 btn btn-secondary showmodal" />
          
                @Html.ActionLink("Upravit","Edit",invoice,new { @class = "m-lg-2 btn btn-warning"})
                @Html.ActionLink("Vymazat","Remove",invoice,new { @class = "m-lg-2 btn btn-danger"})
    
            }
        }
        </div>
    
    </div>

暫無
暫無

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

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