第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C# ASP.NET:復(fù)選框和單選按鈕的問題

C# ASP.NET:復(fù)選框和單選按鈕的問題

拉丁的傳說 2023-08-21 16:44:54
我正在創(chuàng)建一個應(yīng)用程序,用戶填寫一個表單,其中某些屬性的設(shè)置不是強制性的。這包括復(fù)選框和單選按鈕。所以,我的模型中有這樣的東西:public class MyModel {     public bool boolvalue;     public MyTwoValuedType mytypevalue;}我認(rèn)為:@model MyModel<form method="post">   @Html.CheckBoxFor(m => m.boolvalue)   @Html.RadioButtonFor(m => m.mytypevalue, mytypevalue.Value1)   @Html.RadioButtonFor(m => m.mytypevalue, mytypevalue.Value2)</form>當(dāng)我初始化視圖時,我return View();在控制器中發(fā)送一個空模型,并且單選按鈕沒有值(未選中單選按鈕)并且未選中復(fù)選框(因此其值為 false)。但是,我想使用可空類型,例如 (bool?和MyTwoValuedType?),一旦我希望如果在用戶沒有更改復(fù)選框和單選按鈕的值的情況下提交表單(在視圖中),它們就不會沒有得到默認(rèn)值。即使表單提交有錯誤,表單的重新出現(xiàn)(因為驗證失敗)的復(fù)選框和單選按鈕中的值也不是由用戶設(shè)置的……我應(yīng)該使用Html.DropDownListFor可空類型而不是復(fù)選框和單選按鈕嗎?這樣會有好的結(jié)果嗎?
查看完整描述

3 回答

?
米琪卡哇伊

TA貢獻1998條經(jīng)驗 獲得超6個贊

將 @Html.DropDownListFor 用于可為 null 的屬性,因為當(dāng)您在視圖中發(fā)送空模型然后在 POST 中發(fā)送時,您將得到 false 作為布爾返回值。您不能將復(fù)選框用于布爾模型。

如果你想使用復(fù)選框和單選按鈕作為布爾值,那么使用 jquery 來設(shè)置值。但 DropdownList 最適合布爾模型屬性。


查看完整回答
反對 回復(fù) 2023-08-21
?
慕村225694

TA貢獻1880條經(jīng)驗 獲得超4個贊

nullable因此,關(guān)于在復(fù)選框中使用布爾值,它是不合適的,因為nullable布爾值可以存儲 3 種狀態(tài):nulltruefalse。但是復(fù)選框只能有一個true或一個false其控件。這是因為 aHTML Checkbox沒有 3 態(tài)支持,因為當(dāng)時不存在這個概念。它與舊的 Windows 窗體復(fù)選框共享該屬性。所以需要用adropdownlist來處理這三種狀態(tài)。如果您想使用復(fù)選框,那么:

  • 停止使用nullable布爾值

或者

  • 停止嘗試使用 acheckbox因為這樣null狀態(tài)將轉(zhuǎn)換為false


查看完整回答
反對 回復(fù) 2023-08-21
?
LEATH

TA貢獻1936條經(jīng)驗 獲得超7個贊

你說:“我通過 return View() 發(fā)送一個空模型” - 檢查模型是否為空。


控制器:


 public ActionResult Index()

 {

     return View();

 }


 [HttpPost]

 public ActionResult Index(Models.MyModel m)

 {

     return View(m);

 }

看法:


<form method="post">

    @{


        if (Model == null)

        {

            @Html.CheckBoxFor(m => m.boolvalue)


            @Html.RadioButtonFor(m => m.mytypevalue,false);


            @Html.RadioButtonFor(m => m.mytypevalue,false)

        }

        else

        {

            @Html.CheckBoxFor(m => m.boolvalue)


            @Html.RadioButtonFor(m => m.mytypevalue, Model.mytypevalue.Value1);


            @Html.RadioButtonFor(m => m.mytypevalue, Model.mytypevalue.Value2)

        }

    }

</form>

模型:


public class MyModel

{

    public bool boolvalue;

    private MyTwoValuedType _mytypevalue;

    public MyTwoValuedType mytypevalue

    {

        get

        {

            if (_mytypevalue == null)

            {

                _mytypevalue = new MyTwoValuedType();

            }

            return _mytypevalue;

        }

        set

        {

            _mytypevalue = value;

        }

    }

}


查看完整回答
反對 回復(fù) 2023-08-21
  • 3 回答
  • 0 關(guān)注
  • 196 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號