kaskadowy DropDownList-y walidacja i znikająca lista

0

witajcie

poniżej zamieszczam

kod Modelu

 public class Piosenki
    {
        public string nazwa_piosenki { get; set; }

        [Required(ErrorMessage="Wybierz Artystę")]
        public int nr_artysty { get; set; }
        
        [Required(ErrorMessage="Wybierz Album")]
        public int nr_albumu { get; set; }
    } 

kod View

<script type="text/javascript">

    $(function () {

        var linia = 0;

        $("#dropDownList2").html("<option>Wybierz Album</option>");

        $("#dropDownList1").change(function () {
            if ($("#dropDownList1").val() != "") {
                $.getJSON("/PlytyManager/AlbumyLista/" + $("#dropDownList1").val(), function (data) {
                    var item = "<option>Wybierz Album</option>";
                    $.each(data, function (i, albumy) {
                        item += "<option value = " + albumy.Value + ">" + albumy.Text + "</option>";
                    });
                    $("#dropDownList2").html(item);
                });
            }
            else {
                $("#dropDownList2").html("<option>Wybierz Album</option>");
            }

        });

        $("#btn1").click(function () {
            $("#piosenki").append("<p><input type='text'></input></p>");
            return false;

        });

    });
</script>
<h2>Wprowadz Piosenki</h2>

<div>
@using (Html.BeginForm())
{ 
<p>
Wybierz Artystę @Html.DropDownListFor(model => model.nr_artysty, new SelectList(ViewBag.WyborArtysty, "NR_ARTYSTY", "NAZWA_ARTYSTY"), "Wybierz Artyste", new { id = "dropDownList1" })
@Html.ValidationMessageFor(model => model.nr_artysty)
</p>
<p id="albums">
Wybierz Album @Html.DropDownListFor(model => model.nr_albumu, new SelectList(Enumerable.Empty<SelectListItem>(), "NAZWA ALBUMU", "NR_ALBUMU"), "Wybierz Album", new { id = "dropDownList2"})
@Html.ValidationMessageFor(model => model.nr_albumu)
</p>   
<h3>Piosenki</h3>
<input id="btn1" type="submit" value="Dodaj Piosenkę" /> 
<input id="btn2" type="submit" value="Wprowadz" />  
    <br />
<div id = "piosenki"></div>    
}
</div> 

Pomóżcie:

  1. problem z wyświetleniem komunikatu błędu, gdy nie wybieram żadnej pozycji w dropDownList2 (Wybierz Album) to pokazuje mi komunikat "The value 'Wybierz Album' is not valid for nr_albumu", komunikat inny niż ten, który jest zdefiniowany w modelu.
  2. Gdy wybiorę Artystę i nie wybiorę Albumu i wcisnę przycisk "Wprowadź" to w dropDownList2 znikają wszystkie albumy przypisane danemu artyście, choć w dropDownList1 wybrany Artysta jest wciąż wyświetlany. Podejrzewam, że trzeba dopisać kilka linijek kodu w jquery.

Dzięki za odp.

0

pyt. 1 rozwiązałem, zrobiłem b. głupi błąd w kontrolerze, użyłem złej klasy do ActionResult.
pyt. 2 rozwiązałem, jedna linijka na końcu funkcji

 $("#dropDownList1").change();

1 użytkowników online, w tym zalogowanych: 0, gości: 1