Гость
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / MVC загрузка файла из View в определенную папку / 4 сообщений из 4, страница 1 из 1
06.01.2020, 13:16
    #39911125
raven_2008
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC загрузка файла из View в определенную папку
доброе время суток, коллеги!

есть следующая задача:
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
06.01.2020, 13:23
    #39911127
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC загрузка файла из View в определенную папку
формы не могут быть вложенными
...
Рейтинг: 0 / 0
06.01.2020, 13:59
    #39911134
raven_2008
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC загрузка файла из View в определенную папку
авторформы не могут быть вложенными

большое спасибо!
...
Рейтинг: 0 / 0
06.01.2020, 16:04
    #39911157
raven_2008
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC загрузка файла из View в определенную папку
новая непонятка:
переписал 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
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / MVC загрузка файла из View в определенную папку / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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