Форум программистов, компьютерный форум, киберфорум
C#: ASP.NET MVC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/34: Рейтинг темы: голосов - 34, средняя оценка - 4.88
1 / 1 / 0
Регистрация: 22.10.2013
Сообщений: 68

Как через Html.ActionLink передать значение в другом Html-элементе в MVC-приложении?

08.10.2015, 15:55. Показов 6559. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
как через Html.ActionLink передать значение в другом Html-элементе в MVC-приложении?

Есть форма:
HTML5
1
2
3
<input id="FileUpload" type="file" />
     
@Html.ActionLink("Click me", "ClickButton", "HelpController", new { ddd = FileUpload.value }, null)
Есть контроллер и метод:
C#
1
2
3
4
5
6
7
8
9
10
11
12
public class HelpController : Controller
    {        
        public ActionResult Index()
        {
...
        }
...
        public ActionResult ClickButton(string ddd)
        {
            var eee = ddd;
            return View();
        }
Но в дизайнер крастой волнистой чертой подчёркичается слово "FileUpload" и при наведении мышкой выводиться сообщение "The name 'FileUpload' does not exist in the current context" на второй строчке :
HTML5
1
@Html.ActionLink("Click me", "ClickButton", "HelpController", new { ddd = FileUpload.value }, null)
Как в итоге надо передавать значение?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.10.2015, 15:55
Ответы с готовыми решениями:

Правильность написания html.raw() в html.Actionlink
Если пишу @Html.ActionLink(Html.Raw(post.Description), &quot;Details&quot;, &quot;Post&quot;, new { id = post.Id, user = post.UserId }, null) то...

Как работает HTML.ActionLink() в mvc3
Добрый день уважаемые форумчане. На днях пытался получить ссылку с помощью метода HTML.ActionLink(), и заметил интересную для себя...

Как передать параметры в через @Html.Action
Можно ли это сделать и как?

13
91 / 91 / 44
Регистрация: 20.04.2008
Сообщений: 331
08.10.2015, 18:46
Создать форму с нужными инпутами, в onclick ActionLink'а делать сабмит этой формы
0
 Аватар для Metall_Version
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
09.10.2015, 10:34
Solomka, а что такое FileUpload ? откуда оно должно его взять, может это поле модели? тогда нужно так писать:

HTML5
1
@Html.ActionLink("Click me", "ClickButton", "HelpController", new { ddd = Model.FileUpload.value }, null)
1
1 / 1 / 0
Регистрация: 22.10.2013
Сообщений: 68
09.10.2015, 11:33  [ТС]
Цитата Сообщение от Metall_Version Посмотреть сообщение
Solomka, а что такое FileUpload ? откуда оно должно его взять, может это поле модели? тогда нужно так писать:

HTML5
1
@Html.ActionLink("Click me", "ClickButton", "HelpController", new { ddd = Model.FileUpload.value }, null)
это элемент формы
HTML5
1
<input id="FileUpload" type="file" />
0
 Аватар для Metall_Version
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
09.10.2015, 11:38
Solomka, а это "new { ddd = FileUpload.value }"
серверный код на C#, все что в представлении не в теге@ - это серверный код (c#), и все остальное (весь html) это просто текст для MVC, он не знает что такое элемент формы, ему это и не нужно.

скажите что хотите сделать, я подскажу как

Добавлено через 1 минуту
Solomka, подозреваю хотите передать файл на сервер, это через ссылку запросом GET не сделать

это делается в js, методом POST
1
1 / 1 / 0
Регистрация: 22.10.2013
Сообщений: 68
09.10.2015, 14:18  [ТС]
Metall_Version, подозрения правильные,
но нме надо и каким-то образом передать комментарий к файлу
0
 Аватар для Metall_Version
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
09.10.2015, 15:05
Цитата Сообщение от Solomka Посмотреть сообщение
подозрения правильные,
но нме надо и каким-то образом передать комментарий к файлу
и в чем проблема?

на ссылку вешаете метод, который инициирует отправку формы, то есть даже достаточно сделать так

HTML5
1
@Html.ActionLink("Click me", "ClickButton", "HelpController", new { onclick = "$('#formid').submit();" }, null)
где formid это id формы.

рекомендую почитать http://metanit.com/sharp/mvc/3.9.php
1
1 / 1 / 0
Регистрация: 22.10.2013
Сообщений: 68
12.10.2015, 10:48  [ТС]
Metall_Version, Чего-то прям ничего не поняла...
А можно объяснить прям для совсем чайников?
Я после ASP.NET WebForms прехожу на MVC, какая-то новая технология не понятная и в простых вопросах она замороченнее, чем старая.
По данной ссылке:
http://metanit.com/sharp/mvc/3.9.php
мне не очень понятно, как сделать так чтобы пользователь мог загружать свои файлы?
0
 Аватар для Metall_Version
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
12.10.2015, 12:58
Лучший ответ Сообщение было отмечено Metall_Version как решение

Решение

Solomka,
отправка файла с клиента это удел только HTML, и это везде будет одинаково (не важно будь то это ASP MVC, ASP формы, php ...)

есть форма с атрибутом enctype="multipart/form-data" , в ней есть input типа"file"
вот самый простой пример, по нажатию на сабмит файл отправится на сервер по указаному адресу.
HTML5
1
2
3
4
<form enctype="multipart/form-data" method="post">
   <input type="file" name="file">
   <input type="submit" value="Отправить">
</form>
за ссылку извиняюсь, дал не ту, вот которая вам нужна http://metanit.com/sharp/articles/26.php

чтобы принять файл в экшене контроллера, можно добавить параметр в метод объект типа HttpPostedFileBase
(пример с того сайта)
C#
1
2
3
4
5
6
7
8
9
10
11
12
[HttpPost]
public ActionResult Upload(HttpPostedFileBase upload)
{
    if(upload!=null)
    {
        // получаем имя файла
        string fileName = System.IO.Path.GetFileName(upload.FileName);
        // сохраняем файл в папку Files в проекте
        upload.SaveAs(Server.MapPath("~/Files/" + fileName));
    }
    return RedirectToAction("Index");
}
надеюсь стало понятно
1
1 / 1 / 0
Регистрация: 22.10.2013
Сообщений: 68
12.10.2015, 16:26  [ТС]
Metall_Version,Почему-то отладчик показывать что upload=null

и не заходит внутрь:
C#
1
2
3
4
5
6
{
        // получаем имя файла
        string fileName = System.IO.Path.GetFileName(upload.FileName);
        // сохраняем файл в папку Files в проекте
        upload.SaveAs(Server.MapPath("~/Files/" + fileName));
    }
0
 Аватар для Metall_Version
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
12.10.2015, 18:39
Цитата Сообщение от Solomka Посмотреть сообщение
Почему-то отладчик показывать что upload=null
было бы неплохо увидеть представление,
input должен иметь такое-же имя как указано в параметре метода
HTML5
1
<input type="file" name="upload">
и вы загружали файл ?
1
1 / 1 / 0
Регистрация: 22.10.2013
Сообщений: 68
13.10.2015, 11:13  [ТС]
Да была опечатка в названии элемента:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@{
    ViewBag.Title = "Home Page";
}
@using (Html.BeginForm("Upload", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    <br />    <br />    <br />    <br />
 
 
 
    <input type="file" name="Upload">
    <br />
    <textarea id="txtComment" rows="2" cols="20"></textarea>
    <br />
    <input type="submit" value="Отправить">
 
}
А как можно тут передать комментарий к файлу?
0
 Аватар для Metall_Version
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
13.10.2015, 11:32
Цитата Сообщение от Solomka Посмотреть сообщение
А как можно тут передать комментарий к файлу?
добавить еще одно поле, и задать ему name, потому что данные в форме отправляются по нейму
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
@using (Html.BeginForm("Upload", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    <br />    <br />    <br />    <br />
 
 
 
    <input type="file" name="Upload">
    <br />
    <textarea id="txtComment" rows="2" cols="20" name="txtComment"></textarea>
    <br />
    <input type="submit" value="Отправить">
 
}
C#
1
2
public ActionResult Upload(HttpPostedFileBase upload, string txtComment)
{
1
1 / 1 / 0
Регистрация: 22.10.2013
Сообщений: 68
13.10.2015, 14:29  [ТС]
спасибо всё работает
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.10.2015, 14:29
Помогаю со студенческими работами здесь

Как передать в ViewBag значение введённое в html-элемент
как передать в ViewBag значение введённое в html-элемент &lt;input type=&quot;text&quot; id=&quot;datepicker&quot; /&gt; ...

@Html.ActionLink
Как с помощью Html.ActionLink передавать параметр?

Про Html.ActionLink
Читаю книгу Сандерса и Фримана по MVC3, они предлагают такой код: В представлении: @model...

Оформление Html.ActionLink
имеется следующий вид &lt;div class=&quot;list-group&quot;&gt; @foreach (var item in Model) { ...

Параметр с html.actionlink в контроллер
вот написал я такие строчки допустим @Html.ActionLink(&quot;Calc&quot;, &quot;Task2&quot;,new {taskidParam = 2},null) &lt;br /&gt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru