Я новичок в программировании, и до сих пор я получил большую помощь для своего проекта в вопросах и ответах других участников здесь, в stackoverflow, но я наткнулся на эту проблему, и я не знаю, как ее решить, поэтому любая помощь приветствуется :)
У меня есть этот droddownlist, который заполняется из jQuery:
@Html.DropDownListFor(Model => Model.labs,
new SelectList(
Enumerable.Empty<SelectListItem>(),
"labsn",
"labdescr"),
"Choose Lab",
new { id = "ddllab" })
Я хочу создать кнопку (или html.actionlink), которая примет выбранное значение labsn и перенаправит меня на другую страницу, где я буду создавать новую таблицу (таблицу labclasses), где labsn является FK, поэтому я хочу, чтобы поле labsn для автоматического заполнения выбранным значением с предыдущей страницы
а также я хочу еще одну кнопку, которая удалит лабораторную таблицу с выбранным labsn и любыми лабораторными классами с этой лабораторией как FK.
Страницы ActionResult, на которые я хочу перенаправить:
public ActionResult Create_LabClasses()
{
return View();
}
Спасибо всем за ваше время.
Я предполагаю, что у вас есть ссылка в вашем представлении с раскрывающимся списком labsn. Затем вы можете использовать немного jquery, чтобы изменить href вашей ссылки.
1) Определите свою ссылку для перенаправления на другое действие, которое принимает labsn
<a href="#" id="labsnAnchor">Go</a>
2) Подключитесь к событию изменения списка выпадающего списка в jquery и в изменении href обработчика в соответствии с выбранным значением. Этот javascript должен быть встроен в представление, потому что он использует помощник @Url.Action.
$('#ddllab').onchange(function(){
val selectedValue = $(this).val();
var link = $('#labsnAnchor');
link.attr('href', '@Url.Action("LabInfo", "YourController")' + '?labsn=' + selectedValue );
});
3) Создайте действие в контроллере, который будет принимать labsn.
public ActionResult LabInfo(int labsn)
{
...
}
РЕДАКТИРОВАТЬ
Если вы хотите удалить функцию, я бы рекомендовал использовать FORM и Post действие на стороне сервера.
1) Вы можете создать форму в своем представлении со скрытым значением, которое будет содержать labsn и кнопку отправки
@using(Html.BeginForm('DeleteLab', 'YourController')
{
<input type="hidden" value="LabsnToDelete"/>
<input type="submit" value="Delete"/>
}
2) Измените скрытое значение, используя тот же javascript, что и для якоря
$('#ddllab').onchange(function(){
val selectedValue = $(this).val();
var link = $('#labsnAnchor');
link.attr('href', '@Url.Action("LabInfo", "YourController")' + '?labsn=' + selectedValue );
$('#LabsnToDelete').val(selectedValue); // just add this line to set LabsnToDelete value
});
3) И создайте действие контроллера, которое будет принимать почтовые запросы для удаления лабораторий
public ActionResult DeleteLab(int labsnToDelete)
{
...
}