Liste partiellement remplie L'ID n'est pas récupéré à l'aide de Dapper

asp.net asp.net-mvc-4 dapper razor stored-procedures

Question

J'essaie de remplir la liste déroulante à l'aide de Dapper mais lorsque je récupère les valeurs de l' ID stored procedure n'est pas récupéré. Seul le nom est récupéré. Je ne sais pas où je me trompe. Voici mon code

Manette

public ActionResult Index()
    {
        string str = @"Data Source=DEV_3\SQLEXPRESS;Initial Catalog=DB_Naved_Test;Integrated Security=True";
        SqlConnection con = new SqlConnection(str);
        var para = new DynamicParameters();
        para.Add("@Type", 1);
        var result = con.Query<Region>("Sp_MVCDapperDDl", para, commandType: CommandType.StoredProcedure);
        var list = new SelectList(result,"CountryId","CountryName");
        ViewData["country"] = list;
        return View();
    }

entrer la description de l'image ici

Modèle

 public class Region
{
    private int _CountryId;
    private string _CountryName;
    public int CountryId
    {
        get { return _CountryId; }
        set { _CountryId = value; }
    }
    public string CountryName
    {
        get { return _CountryName; }
        set { _CountryName = value; }
    }
}

Vue

@using (Html.BeginForm())
{
@Html.DropDownList("Country", ViewData["country"] as SelectList, "Select Country", new { id = "Country", style = "width: 150px;" })<br />
<select id="State" name="state" , style="width: 150px;"></select><br />
<select id="city" name="City" , style="width: 150px;"></select><br />
}

@Scripts.Render("~/bundles/jquery")
<script type="text/jscript">
  $(function ()
{
    $('#Country').change(function ()
    {        
        $.getJSON('/Cascading/StateList/' + $('#Country').val(), function (data)
        {
            var items = '<option>Select State</option>';
            $.each(data, function (i, state)
            {
                items += "<option value='" + state.Value + "'>" + state.Text + "</option>";
            });
            $('#State').html(items);
        });
    });

    $('#State').change(function ()
    {
        $.getJSON('/Cascading/Citylist/' + $('#State').val(), function (data)
        {
            var items = '<option>Select City</option>';
            $.each(data, function (i, city)
            {
                items += "<option value='" + city.Value + "'>" + city.Text + "</option>";
            });
            $('#city').html(items);
        });
    });
});

Procédure stockée

ALTER procedure [dbo].[Sp_MVCDapperDDl]
 (
 @Type int,
 @CountryId int=0,
 @StateId int=0 
 )
 as
 if @Type=1
 begin
 select * from tbl_country
 end
 if @Type=2
 begin
  select * from tbl_states where cid=@CountryId
 end
 if @Type=3
 begin
 select * from tbl_cities where stateid=@StateId
 end

Réponse acceptée

Juste une petite édition était nécessaire maintenant son bon fonctionnement

public class Region
{
    private int _cid;
    public int Cid
    {
        get { return _cid; }
        set { _cid = value; }
    }
private string _CountryName;
public string CountryName
{
    get { return _CountryName; }
    set { _CountryName = value; }
}

}




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi