Liste wird teilweise gefüllt. Id wird nicht mit Dapper geholt

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

Frage

Ich versuche, Dropdown-Liste mit Dapper zu füllen, aber wenn ich die Werte von stored procedure ID abrufen wird nicht abgerufen nur Name abgerufen wird, weiß nicht, wo ich falsch liege. Hier ist mein Code

Regler

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();
    }

Bildbeschreibung hier eingeben

Modell

 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; }
    }
}

Aussicht

@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);
        });
    });
});

Gespeicherte Prozedur

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

Akzeptierte Antwort

Nur eine kleine Ausgabe wurde benötigt, jetzt funktioniert es gut

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; }
}

}



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum