簡體   English   中英

ASP MVC 5 - 點擊“提交按鈕”后頁面重新加載后保持@html.checkbox狀態

[英]ASP MVC 5 - keep @html.checkbox state after page reload after clicking “submit button”

我創建了一個頁面,我可以通過實體框架搜索商店詳細信息,我在表格中添加了一列復選框。 通過搜索按鈕提交后,我想保留“checked = True”復選框。

實現這一目標的推薦方法是什么?

我嘗試了以下方法,但在點擊提交1后,復選框變為“未選中” .https://www.sitepoint.com/quick-tip-persist-checkbox-checked-state-after-page-reload/

查看如下:

@using (Html.BeginForm())
{
<p>
    Find by name: @Html.TextBox("SearchString") 
    <input type="submit"  name ="StoreIndexButton" value="Search" />
</p>
}
<table class="table" id="displayresult">

@foreach (var item in Model) {
<tr>
    <td>
        @Html.DisplayFor(modelItem => item.name)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.market)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.status)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.oper)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.operator)
    </td>
    <td>
        @Html.ActionLink("Details", "Details", new { id=item.store1 })
    </td>
    <td>
        @Html.CheckBox("selected",new { value = item.store1,     id="selected"+item.store1.ToString() })
    </td>
</tr>
}

</table>

控制器如下:

public ActionResult Index(string StoreIndexButton,string searchString)
{
    var AR_stores = (from m in db.stores
                     select m).Take(10);
    string[] selectedList = Request.Form.GetValues("selected");
    if (!String.IsNullOrEmpty(searchString) && StoreIndexButton =="Search")
    {
         AR_stores = (from m in db.stores
                      select m).Where(s =>   s.name.Contains(searchString));
    }
    return View(AR_stores);    
}

型號如下:

using System;
using System.Collections.Generic;

public partial class store
{
    public int store1 { get; set; }
    public string name { get; set; }
    public string market { get; set; }
    public string status { get; set; }
    public string oper { get; set; }
    public string operator { get; set; } 
}

我會這樣:

在partial class上添加一個flag參數。

public string checkStatus {get; set;}

默認情況下,這將為false,並且不會選擇任何選項。

提交功能后,您有所選項目的列表,您可以將它們設置為選中(checkStatus將為true)。

MVC沒有像ASP.Net WebForms這樣的ViewState(不確定viewstate是一個特性還是缺點)。 因此,您必須使用隱藏字段或變量保存復選框的狀態。 你可以用jquery和ajax來試試這個

暫無
暫無

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

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