Как я могу получить выбранное значение DropDownList и отправить его на контроллер в ASP.NET MVC 4 и используя JavaScript?
Я много раз искал, чтобы получить выбранное значение в DropDownList для отправки его в контроллер с помощью MVC 4, и я нашел что-то вроде этого: Request.Form["id"], но они не соответствовали моим потребностям. У меня есть эта форма:
<div class="editor-label">
@Html.LabelFor(model => model.IDTYPE, "TYPES")
</div>
<div class="editor-field">
@Html.DropDownList("IDTYPE", String.Empty)
@Html.ValidationMessageFor(model => model.IDTYPE)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.IDFLIGHT, "FLIGHTS")
</div>
<div class="editor-field">
@Html.DropDownList("IDFLIGHT", String.Empty)
@Html.ValidationMessageFor(model => model.IDFLIGHT)
@Html.ActionLink("Add New flight","Create","Flight",null,new{@style="font-size:16px;", @class="popup"})
</div>
Я не хочу отправлять данные в контроллер, используя метод Post в форме, но используя следующий скрипт, который предназначен для плагина с именем Aurigma, используемого для загрузки изображений и вызова действия в контроллере. Вот код:
<script type="text/javascript">
var uploader = $au.imageUploaderFlash({
id: 'Uploader1',
licenseKey: '77FF4-00485-962F7-E117E-11414-86DBBB',
folderProcessingMode: 'Upload',
restrictions: { fileMask: '*.jpg;*.jpeg;*.png;*.gif;*.bmp' },
messages: { fileNameNotAllowed: 'You can add only images.' },
width: '100%',
height: '400px',
converters: [
{ mode: '*.*=SourceFile' }
],
uploadSettings: {
actionUrl: '@Url.Action("Ajouter", "Image")'
}
});
uploader.writeHtml();
Итак, я хочу получить идентификатор выбранного значения в двух DropDownLists IDFLIGHT и IDTYPE и передать его в actionURL. Итак, я хочу сделать что-то подобное:
actionUrl: '@Url.Action("Ajouter", "Image", new { IdFlight = "id for flight", IdType = "id for type"})'
и вот мой контроллер:
[HttpPost]
public ActionResult Ajouter(int idflight, int idtype)
{
for (int i = 0;
i < Convert.ToInt32(Request.Form["PackageFileCount"]);
i++)
{
if (Request.Form["File0Mode_" + i] != "sourceFile")
throw
new Exception("Uploader expects to send original files.");
HttpPostedFileBase sourceFile;
sourceFile = Request.Files["File0_" + i];
Char[] sepDCap = { '_', '.' };
String[] data = sourceFile.FileName.Split(sepDCap);
string Jour = data[1];
string Mois = data[2];
string Annee = data[3];
string dateCreat = DateTime.Now.ToString();
Char[] sepTDate = { '-', '/',' ' };
String[] dateCr = dateCreat.Split(sepTDate);
string Jourdc = dateCr[0];
string Moisdc = dateCr[1];
string Anneedc = dateCr[2];
string pathToCreate = "~/Uploads/" + Anneedc + "/" + Moisdc + "/" + Jourdc;
if (!Directory.Exists(Server.MapPath(pathToCreate)))
{
Directory.CreateDirectory(Server.MapPath(pathToCreate));
}
string dir = Server.MapPath(pathToCreate);
sourceFile.SaveAs(dir + "/" + sourceFile.FileName);
DateTime dateCapt = Convert.ToDateTime(Jour + "-" + Mois + "-" + Annee);
double latitude = Convert.ToDouble(data[4]);
double altitude = Convert.ToDouble(data[5]);
string pathImage = pathToCreate;
double longitude = Convert.ToDouble(data[6]);
IMAGES img=new IMAGES();
img.IDFLIGHT = idflight;
img.IDTYPE = idtype;
img.DATECAPTURE = dateCapt;
img.LATITUDE = latitude;
img.ALTITUDE = altitude;
img.PATHIMAGE = pathImage;
img.CREATED = Convert.ToDateTime(dateCreat);
img.LONGITUDE = longitude;
ImageService imgSce = new ImageService();
imgSce.create(img);
}
Response.Write("Upload Complete");
return null;
}
благодарю вас!
1 ответ
@Url.Action()
является бритвой код и анализируется на сервере, прежде чем передать его в представление. Чтобы создать URL-адрес на основе выбранных значений в раскрывающихся списках, используйте
actionUrl: '@Url.Action("Ajouter", "Image")' + '?idflight=' + $('#IDFLIGHT').val() + '&idtype=' + $('#IDTYPE').val()