c# - EF multiple dropdowns -


i want have 2 dropdowns on invoice page model follows:

    public class invoice {     [key]     public int invoiceid { get; set; }     public int memberid { get; set; }     public int addressid { get; set; }      public virtual member member { get; set; }     public virtual membersaddress  membersaddress { get; set; }     public virtual icollection<invoicelineitem> invoicelineitems { get; set; } } 

though wizard automatically generated crud pages me , code well, when select member name first dropdown, need populate addresses of member. code create() method in invoicecontroller is:

public actionresult create()     {         viewbag.memberid = new selectlist(db.members, "memberid", "firstname");         return view();     } 

and cshtml file is:

@model mvcdemoapp.models.invoice  @{   viewbag.title = "create"; }  <h2>create</h2>  @using (html.beginform()) { @html.antiforgerytoken() @html.validationsummary(true)  <fieldset>     <legend>invoice</legend>      <div class="editor-label">         @html.labelfor(model => model.memberid, "member")     </div>     <div class="editor-field">         @html.dropdownlist("memberid", string.empty)         @html.validationmessagefor(model => model.memberid)     </div>      <div class="editor-label">         @html.labelfor(model => model.addressid)     </div>     <div class="editor-field">         @@html.editorfor(model => model.addressid)@         @html.validationmessagefor(model => model.addressid)     </div>      <p>         <input type="submit" value="create" />     </p>   </fieldset> }  <div>   @html.actionlink("back list", "index") </div>  @section scripts {    @scripts.render("~/bundles/jqueryval") } 

thanks in advance.

as far understood, based upon the selected member name first dropdownlist want generate want create dropdownlist(or whatever) addresses.

if want achieve this, have use partial view. give firstdropdownlist id , upon dropdownlist being selected, load partial view using jquery load addresses. example in view this

@html.dropdownlist("memberid", string.empty, new{id = "membersname") <div id="partialdiv"></div> 

and fill partial div using jquery

<script>      $("#membersname").on("change", function() {         var memberid = $(this).val();         $.get('@url.action("getmemberaddress", "module")', { id: memberid }, function(result) {             $("#partialdiv").html(result);         });          //uncomment following section check if partial view working         /*.done(function() { alert("done"); })             .fail(function() { alert("fail"); })             .always(function() { alert("completed"); });*/      });  </script> 

you should add function called getmemberaddress in controller gets called when dropdownlist item selected, done following code in above script.

$.get('@url.action("getmemberaddress", "module")', { id: memberid },  

i'm providing technique, solve issue. have use based upon result want


Comments

Popular posts from this blog

php - Calling a template part from a post -

Firefox SVG shape not printing when it has stroke -

How to mention the localhost in android -