powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / MVC загрузка файла из View в определенную папку
4 сообщений из 4, страница 1 из 1
MVC загрузка файла из View в определенную папку
    #39911125
raven_2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
доброе время суток, коллеги!

есть следующая задача:
MVC - приложение, хранящее на сервере ссылочные файлы нескольких (для определенности - трех) типов
обычный пользователь может файлы только получить
авторизованный - редактировать.
в т.ч. - добавлять

Для чего есть след View

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
@model Pagina.Models.RData

@using Pagina.Helpers

@{
    ViewBag.Title = "Редактирование записи";
}

@using (Html.BeginForm("EditFile", "Home", FormMethod.Post))
{
    <h2>Редактируется запись № @Model.ID</h2>
    


    <fieldset>
        @Html.HiddenFor(m => m.ID)
        <p>
            @Html.LabelFor(m => m.FileName, "Наименование файла")
            

            @Html.EditorFor(m => m.FileName)
        </p>
        <p>
            @Html.LabelFor(m => m.RegNo, "Регистрационный номер")
            

            @Html.EditorFor(m => m.RegNo)
        </p>

        <table width="98%">
            <tr>
                <td>
                    @using (Html.BeginForm("UploadPPS", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
                    {
                        <input type="file" name="uploadPPS" /><br>
                        <input type="submit" value="Загрузить PPS" />
                    }
                </td>
                <td>
                    @using (Html.BeginForm("UploadAI", "Home", FormMethod.Post, new { enctype = "multipart/form-data"}))
                    {
                        <input type="file" name="uploadAI" /><br>
                        <input type="submit" value="Загрузить AI" />
                    }
                </td>
                <td>
                    @using (Html.BeginForm("UploadSP", "Home", FormMethod.Post, new { enctype = "multipart/form-data"}))
                    {
                        <input type="file" name="uploadSP" /><br>
                        <input type="submit" value="Загрузить SP" />
                    }
                </td>
            </tr>
            <tr>
                <td></td>
                <td></td>
                <td>.</td>
            </tr>
            <tr>
                <td>
                    @Html.ActionLink(Model.linkPPS, "GetFile", new { ID = Model.ID, Folder = "PPS" })
                    

                </td>
                <td>
                    @Html.ActionLink(Model.linkAI, "GetFile", new { ID = Model.ID, Folder = "AI" })
                    

                </td>
                <td>
                    @Html.ActionLink(Model.linkSP, "GetFile", new { ID = Model.ID, Folder = "SP" })
                    


                </td>
            </tr>
            <tr>
                <td></td>
                <td></td>
                <td>.</td>
            </tr>
            <tr>
                <td>
                    

                    @Html.ActionLink(Model.FilePPS, "DeleteFile", new { ID = Model.ID, Folder = "PPS" })

                </td>
                <td>
                    

                    @Html.ActionLink(Model.FileAI, "DeleteFile", new { ID = Model.ID, Folder = "AI" })
                </td>
                <td>
                    

                    @Html.ActionLink(Model.FileSP, "DeleteFile", new { ID = Model.ID, Folder = "SP" })
                </td>
            </tr>
        </table>
        

        

        <p><input type="submit" value="Сохранить" /></p>
    </fieldset>

}








@Html.ActionLink("На главную", "Index")



по замыслу, при нажатии на кнопку
Загрузить PPS
сработает процедура
UploadPPS
в контроллере
HomeController

[HttpPost]
[Authorize]
public ActionResult UploadPPS(HttpPostedFileBase uploadPPS/*, Int64 id*/)

вместо этого запускается перезагрузка View

[HttpPost]
[Authorize]
public ActionResult EditFile(RData rd)

затем программа пытается ПОЛУЧИТЬ, а не положить файл
и, естественно, выдает ошибку: файл не найден

хотя все остальные процедуры (кроме загрузки файлов) работают нормально

что я сделал не так?
заранее спасибо
...
Рейтинг: 0 / 0
MVC загрузка файла из View в определенную папку
    #39911127
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
формы не могут быть вложенными
...
Рейтинг: 0 / 0
MVC загрузка файла из View в определенную папку
    #39911134
raven_2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторформы не могут быть вложенными

большое спасибо!
...
Рейтинг: 0 / 0
MVC загрузка файла из View в определенную папку
    #39911157
raven_2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
новая непонятка:
переписал View следующим образом:

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
@model Pagina.Models.RData

@using Pagina.Helpers

@{
    /**/

    ViewBag.Title = "Редактирование записи";
}

@using (Html.BeginForm("EditFile", "Home", FormMethod.Post))
{
    <h2>Редактируется запись № @Model.ID</h2>
    


    <fieldset>
        @Html.HiddenFor(m => m.ID)
        <p>
            @Html.LabelFor(m => m.FileName, "Наименование файла")
            

            @Html.EditorFor(m => m.FileName)
        </p>
        <p>
            @Html.LabelFor(m => m.RegNo, "Регистрационный номер")
            

            @Html.EditorFor(m => m.RegNo)
        </p>

        

        

        <p><input type="submit" value="Сохранить" /></p>
    </fieldset>

}
<h1>Выберите файлы для загрузки</h1>




<table width="98%">

    <tr>
        <td>
            @Html.ActionLink(Model.linkPPS, "GetFile", new { ID = Model.ID, Folder = "PPS" })
            

        </td>
        <td>
            @Html.ActionLink(Model.linkAI, "GetFile", new { ID = Model.ID, Folder = "AI" })
            

        </td>
        <td>
            @Html.ActionLink(Model.linkSP, "GetFile", new { ID = Model.ID, Folder = "SP" })
            


        </td>
    </tr>
    <tr>
        <td></td>
        <td></td>
        <td>.</td>
    </tr>
    <tr>
        <td>
            @using (Html.BeginForm("UploadPPS", "Home", FormMethod.Post, new { enctype = "multipart/form-data",  model = Model }))
            {
                <input type="file" name="uploadPPS" /><br>
                <input type="submit" value="Загрузить PPS" />
            }
        </td>
        <td>
            @using (Html.BeginForm("UploadAI", "Home", FormMethod.Post, new { enctype = "multipart/form-data", model = Model }))
            {
                <input type="file" name="uploadAI" /><br>
                <input type="submit" value="Загрузить AI" />
            }
        </td>
        <td>
            @using (Html.BeginForm("UploadSP", "Home", FormMethod.Post, new { enctype = "multipart/form-data", model = Model }))
            {
                <input type="file" name="uploadSP" /><br>
                <input type="submit" value="Загрузить SP" />
            }
        </td>

    </tr>
    <tr>
        <td></td>
        <td></td>
        <td>.</td>
    </tr>
    <tr>
        <td>
            

            @Html.ActionLink(Model.FilePPS, "DeleteFile", new { ID = Model.ID, Folder = "PPS" })

        </td>
        <td>
            

            @Html.ActionLink(Model.FileAI, "DeleteFile", new { ID = Model.ID, Folder = "AI" })
        </td>
        <td>
            

            @Html.ActionLink(Model.FileSP, "DeleteFile", new { ID = Model.ID, Folder = "SP" })
        </td>
    </tr>

</table>








@Html.ActionLink("На главную", "Index")



GetFile/DeleteFile работает прекрасно
но при попытке загрузить файл (который должен быть сохранен под определенным именем, по умолчанию - идентификатор записи, хранится в модели, ) выдает сообщение, что Model пустая
в какую сторону копать?
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / MVC загрузка файла из View в определенную папку
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]