有誰知道爲什麼會發生這種情況?從我的控制器(FirmsController)中,我只是試圖將選定的公司返回到控制器方法(EditAffiliations(字符串selectedFirm))作爲參數。選定的公司值應該來自下拉列表。但無論我做什麼,我都無法做到這一點。我是新的,我會承認這一點,但這是非常誘人的。以下是方法。jQuery dropdownlist不會返回正確的選擇
public ActionResult EditAffiliations(string selectedFirm)
{
// selectedFirm = "8";
//All available firms
//Collection<Firm> firms = new Collection<Firm>();
//Collection<FirmSelectorModel> models = new Collection<FirmSelectorModel>();
var model = new FirmSelectorModel();
_workContext.CurrentUser.Firms = _firmService.GetAllFirms().Where(m => m.ExternalId.Contains("F")).ToArray();
if (selectedFirm==null || _workContext.CurrentFirm == null)
{
_workContext.CurrentFirm = _workContext.CurrentUser.Firms.FirstOrDefault();
model.CurrentFirm = _workContext.CurrentFirm.ToModel();
}
else
{
model.CurrentFirm = _firmService.GetFirmById(Convert.ToInt16(selectedFirm)).ToModel(); //_workContext.CurrentFirm.ToModel();
}
model.AvailableFirms = (_firmService.GetAllFirms().Where(m => m.ExternalId.Contains("F"))).Select(x => x.ToModel()).ToList();
return View(model);
}
下面是我的看法:
@model FirmSelectorModel
@using System.Globalization;
@{
var gridPageSize = EngineContext.Current.Resolve<Incendo.Core.Domain.Common.AdminAreaSettings>().GridPageSize;
}
@T("Admin.Users.UserAffiliations")
@if (Model.AvailableFirms.Count > 0)
{
using (Ajax.BeginForm("EditAffiliations", "Firms", new AjaxOptions { OnComplete = "onFirmChangedRequestCompleted();" }, new { id = "form-firmselector", role = "form"}))
{
var firms = Model.AvailableFirms.Select(x => new SelectListItem
{
Text = String.Format("{0} - {1}", x.ExternalId, x.Name),
Value = x.Id.ToString(),
Selected = x.Id.Equals(Model.CurrentFirm.Id)
});
@Html.DropDownList("userfirm",
firms,
new { onChange = "onFirmChanged();", @class = "form-control"})
}
<script type="text/javascript">
function onFirmChanged() {
//var singleValues = $("#userfirm").val();
//$("#form-firmselector").submit();
//alert(singleValues);
}
function onFirmChangedRequestCompleted() {
//location.reload();
}
$("select").change(displayVals);
displayVals();
</script>
}
我想返回在dropdwonlist選擇的值回控制器。我應該在函數onFirmchanged()中寫什麼?如何將其發送回控制器? 我錯過了什麼?希望有人會回答之前,我失去了我受詛咒的考慮到這一點煩惱... 問候,SM
嗨,是的,我很抱歉。這是真的。如果代碼在小提琴中起作用,那麼它是否在我的代碼中不起作用?我希望將在dropdwonlist中選擇的值返回給控制器。我應該在函數onFirmchanged()中寫什麼?如何將其發送回控制器? –