eRiCk
eRiCk

Reputation: 43

Passing routeValues to Controller in MVC 3

i have this code in View

    @using (Html.BeginForm())
    {
       @: Location @Html.DropDownList("territryID", (SelectList)ViewBag.Territory,    "choose one")

@Ajax.ActionLink(
    "ok",
    "Info", new { territryID = "#territryID" },
    new AjaxOptions
    {
        InsertionMode = InsertionMode.Replace,
        HttpMethod = "POST",
        UpdateTargetId = "post1"
    })

     <div id="post1">
     </div>
    }

and this code in my Controller

   [HttpPost]
   public ActionResult Info(int? territryID)
   {
        if (territryID == null)
        {
            return RedirectToAction("Info");
        }

        var model = (from c in _db.OCRDs
                     where c.Territory == territryID
                     select c).Distinct();

        return PartialView("_getCustomerByTerritory", model);
    }

how to passing my dropdownlist selected value to territryID parameter in controller, how to do that?

thanks, erick

Upvotes: 2

Views: 4081

Answers (1)

Mirko
Mirko

Reputation: 4282

How about this, initialize your URL to something like this (also note the assignment of an id to the link):


@Ajax.ActionLink("ok", "Info", new { territryID = "REPLACEME" }, new AjaxOptions { InsertionMode = InsertionMode.Replace, HttpMethod = "POST", UpdateTargetId = "post1" }, new { id = "oklink" })

Replace the placeholder (REPLACEME) when the dropdown changes, like so:


<script>
$('#territryID').change(function () {
    var newid = $('#territryID').val();
    var oldLink = $('#oklink').attr('href');
    var newLink = oldLink.replace('REPLACEME', newid);
    $('#oklink').attr('href', newLink);
});
</script>

Upvotes: 1

Related Questions