5

以下はビューです:

 <div class="editor-label">
        Select Currency :
        </div>
        <div class="editor-field">
            @Html.DropDownList("CurrencyId", new SelectList(ViewBag.CurrencyId, "Value", "Text"))
 </div><div class="editor-label">
         Select GameType :
        </div>
        <div class="editor-field">
           @Html.DropDownList("GameTypeId", new SelectList(ViewBag.GameTypeId, "Value", "Text"), new { style = "width:100px" })
            @Html.ValidationMessageFor(model => model.GameTypeId)
        </div>

        <div class="editor-label">
          Select Category :
        </div>
        <div class="editor-field">
          @Html.DropDownList("CategoryByGameType", Enumerable.Empty<SelectListItem>(), "Select Category")
          @Html.ValidationMessageFor(model => model.CategoryId)
        </div>

以下はコントローラーです:-

 public ActionResult Create()
        {
            List<Currency> objCurrency = new List<Currency>();
            objCurrency = db.Currencies.ToList();
            List<SelectListItem> listItems = new List<SelectListItem>();
            listItems.Add(new SelectListItem()
            {
                Value = "0",
                Text = "Select Currency"
            });
            foreach (Currency item_Currency in objCurrency)
            {
                listItems.Add(new SelectListItem()
                {
                    Value = item_Currency.CurrencyId.ToString(),
                    Text = item_Currency.CurrencyName
                });
            }
            ViewBag.CurrencyId = new SelectList(listItems, "Value", "Text");

            List<GameType> objgametype = objGameByGameType.GetDistinctGameTypeID();
            List<SelectListItem> listItems_1 = new List<SelectListItem>();
            listItems_1.Add(new SelectListItem()
            {
                Value = "0",
                Text = "Select Game Type"
            });
            foreach (GameType item_GameType in objgametype)
            {
                listItems_1.Add(new SelectListItem()
                {
                    Value = item_GameType.GameTypeId.ToString(),
                    Text = item_GameType.GameTypeName
                });
            }
            ViewBag.GameTypeId = new SelectList(listItems_1, "Value", "Text");


            return View();
        }

以下は、カスケーディングドロップダウンを使用している私のJqueryです

$(function () {
            $("#GameTypeId").change(function () {
                var theatres = "";
                var gametype = "";
                var mytestvar = "";
                var gametypeid = $(this).val();

            mytestvar += "<option value= -1 >Select Category</option>";
            $.getJSON("@Url.Action("GetCategoryByGameType", "GameCombination")?gametypeid=" + gametypeid, function (data) {
                $.each(data, function (index, gametype) {
                  //  alert("<option value='" + gametype.Value + "'>" + gametype.Text + "</option>");
                    mytestvar += "<option value='" + gametype.Value + "'>" + gametype.Text + "</option>";
                });
                //alert(mytestvar);
                $("#CategoryByGameType").html(mytestvar);
                $("#GamebyCategory").html("<option value=0>Select Game</option>");
                $("#LimitVariantByGameByGameType").html("<option value=0>Select Limit Variant</option>");
                $("#StakeCategory").html("<option value=0>Select Stake Category</option>");
                $("#StakeBuyInByStakeCategory").html("<option value=0>Select Stake Buy In By Stake Category</option>");
      });

    });
    });

データの送信中に、作成時にエラーが発生した場合、ドロップダウン値を取り戻すことができません

4

3 に答える 3

0

dropdownlistView.cs でオブジェクトを作成し、値を割り当てる必要があります。その後、dropdown値を取得しようとすると、ViewBag タイトル オブジェクト名とドロップダウンリスト値を使用する必要があります。

以下のコードは、ラジオボタンを指定します。ドロップダウン用に変更できます

@model MVC_Compiler.Models.UserProgram
@{
ViewBag.Title = "UserProgram";
}
<table style="background-color: #FBF9EF;">
            <colgroup>
                <col style="width: 20%;">
                <col style="width: 80%;">
            </colgroup>
            <tr>
                <td style="vertical-align: text-top">
                    @Html.RadioButtonFor(up => up.Language, "C")C<br />
                    @Html.RadioButtonFor(up => up.Language, "C++")C++<br />
                    @Html.RadioButtonFor(up => up.Language, "C#")C#<br />
                    @Html.RadioButtonFor(up => up.Language, "VB")VB<br />
                    @Html.RadioButtonFor(up => up.Language, "Java")Java<br />
                    @Html.RadioButtonFor(up => up.Language, "Perl")Perl<br />
                    @Html.HiddenFor(up => up.Language, new { @id = "Select_Language" })
                    @Html.HiddenFor(up => up.UserName, new { @id = "UserName" })
                </td>

次に、モデルでは、次の方法でラジオ ボタンの値を取得できます。

userProgram.Language

ここで、userProgram は ViewBag のタイトルです。

于 2014-07-25T07:33:35.843 に答える
0

これにより、何ができるかがわかります。

$.eachajaxを独自の関数に移動し、独自の関数に移動し、ajax関数から関数を呼び出し$.each、main関数からajax関数を呼び出すことをお勧めします。

$(function () {
    $("#GameTypeId").change(function () {
        var theatres = "";
        var gametype = "";
        var mytestvar = "";
        var gametypeid = $(this).val();

        mytestvar += "<option value= -1 >Select Category</option>";

        $.ajax({
            url: '/GameCombination/GetCategoryByGameType',
            type: 'GET',
            data: { "gametypeid": gametypeid},
            dataType: 'json',
            success: function (data) {
                $.each(data, function (index, gametype) {
                    //  alert("<option value='" + gametype.Value + "'>" + gametype.Text + "</option>");
                    mytestvar += "<option value='" + gametype.Value + "'>" + gametype.Text + "</option>";
                });
                //alert(mytestvar);
                $("#CategoryByGameType").html(mytestvar);
                $("#GamebyCategory").html("<option value=0>Select Game</option>");
                $("#LimitVariantByGameByGameType").html("<option value=0>Select Limit Variant</option>");
                $("#StakeCategory").html("<option value=0>Select Stake Category</option>");
                $("#StakeBuyInByStakeCategory").html("<option value=0>Select Stake Buy In By Stake Category</option>");
            },
            error: function (error) {
                alert(error.toString());
            }
        }); 

    });
});
于 2014-07-16T14:26:24.643 に答える