De geselecteerde waarde uit de DropDownList binden voor MVC View met Razor

Ik heb een weergave die werkt, maar ik kan er niet achter komen hoe ik de geselecteerde waarde uit de DropDownList kan ophalen:

@model IEnumerable<trP_MVC_Prototype.Models.usp_TM_Select_ShortNameResult>
@using System.Web;
@using System.Web.WebPages;
@using System.Web.Mvc;  

@{
    ViewBag.Title = "Details";
}
@using (Html.BeginForm("Details", "ProgramSummary", FormMethod.Post, new { id = "Details" }))
{
<div id="main" style="background-color:White">
        

You are logged on as: @ViewBag.Message DrpDwnLst @Html.DropDownList("Short_Title", new SelectList(Model, "short_title", "short_title"), "--Select One--"). @Html.ActionLink("Select","Details",new { Shrt_title = ""}) @Html.ActionLink("Create Program Summary", "Index", "User_Guide") @Html.ActionLink("Edit Program Summary", "Index", "User_Guide") @Html.ActionLink("Delete TRP", "Index", "User_Guide")

 
        

Select TRP to View

        

______________________________________________________________________________________________________________________________________________________________________________

}

The DropDownList displays correctly but I don't know how to return the Selected value in the ActionLink. In the action link the third parameter passes the value back to the controller it currently has "" but I would like to figure out how to reference the selected value instead.

1
Ik volg je niet. In het begin geeft u aan dat u de geselecteerde waarde uit uw DropDown wilt halen, maar uiteindelijk spreekt u over de actiekoppeling.
toegevoegd de auteur Paulo Abreu, de bron
toegevoegd de auteur Darin Dimitrov, de bron
toegevoegd de auteur RickAndMSFT, de bron
Ik wil de geselecteerde waarde retourneren in de derde parameter van de actiekoppeling die momenteel zegt "new {Shrt_title =" "})" replace "" door iets als item.short_title
toegevoegd de auteur user1011441, de bron
Het is hetzelfde probleem. Als dit niet mogelijk is, laat het me weten. Ik dacht dat ik het probleem zou herformuleren. @Darin Dimitrov
toegevoegd de auteur user1011441, de bron
Als je denkt dat ik stom ben, laat het me alsjeblieft weten. Ik ben niet beledigd dat ik graag een antwoord zou willen. Bedankt Bruce
toegevoegd de auteur user1011441, de bron

2 antwoord

U kunt dit doen met jQuery . Als u href van een element wilt wijzigen, ziet u mogelijk deze post .

Je moet ook een veranderingsgebeurtenis afhandelen voor je drop-down:

$('#short_title').change(function() 
{
  //do someting here
});
0
toegevoegd

Dit is mijn antwoord

    @Html.DropDownList("short_name", ViewBag.DetailsList as SelectList, "--Select One--", new { onchange = "dofunction(this.form.short_name);" });
    function dofunction(dropdown) {
        debugger;
        for (i = 0; i < 194; i++) {
            if (dropdown[i].selected == true) {
                var Shrt_ttls = dropdown[i].value.toString()
                //document.getElementById("shrtLst").value = Shrt_ttls;

                $.ajax({
                    url: "/ProgramSummary/Details?Shrt_titles=" + Shrt_ttls,                 
                    type: 'Post',                 
                    data: Shrt_ttls,                 
                    success: function(result) { 
                        alert( "Short Name is: " + Shrt_ttls);//process the results from the controller action                 
                    },             
                    error: function() {
                         alert ( "no deal");
                    }
                });  
            }
        }
        return true;
     }

Dit retourneert de waarde van de javascript-functie naar de HTTPPost voor index. Dank je, Bruce

0
toegevoegd