Как получить formData?

0

Может кто-нибудь, пожалуйста, скажите мне, как получить formData в методе контроллера в ASP.net MVC?

<script type="text/javascript">
    $(function () {                 
        $('#fileupload').fileupload({
            contentType: 'application/json; charset=utf-8',
            url: '/Home/GoodSave'
        })
        .on("fileuploadsubmit", function (e, data) {
            data.formData = {
                jsonOfLog: $("#ddlDocumentType option:selected").text()
            };
        });

        $("#fileuploadbutton").on("click", function() {
            $("#fileupload").submit();
        });
    });
</script>
  • 0
    показать код просмотра, вам не нужно использовать JSON
Теги:
asp.net-mvc
form-data

3 ответа

1
Лучший ответ

Обычно вы указываете параметр в действии контроллера с тем же именем, что и поле в данных формы:

[HttpPost]
public ActionResult GoodSave(string jsonOfLog)

Или определите модель с соответствующим полем:

public class Form {
    public string jsonOfLog {get; set;}
}
[HttpPost]
public ActionResult GoodSave(Form data)
0

Благодаря U10 и Jefraim Ngek, взяв подсказки из ваших ответов, я сделал это так:

Ввиду:

<script type="text/javascript">
    $(function () {
            $('#fileupload').fileupload({
                dataType: 'json',
                url: '/Home/GoodSave', maxFileSize: 5000000,
                add: function (e, data) {
                    $("#fileuploadbutton").click(function () {                        
                        data.formData = { jsonOfLog: $("#ddlDocumentType option:selected").text() };
                        data.submit();
                    });
                },
            });
        });
</script>

В методе контроллера:

[HttpPost]
public JsonResult GoodSave(string jsonOfLog)
{
0

Я думаю, вы пытаетесь загрузить файл с помощью ajax. Используйте эту ссылку для загрузки файлов через ajax.

Однако ниже приведен пример получения данных формы.

@using (Html.BeginForm("Index", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    <input type="file" name="file" />
    <input type="submit" value="OK" />
}

[HttpPost]
public ActionResult Index(HttpPostedFileBase file)
{
    // Verify that the user selected a file
    if (file != null && file.ContentLength > 0) 
    {
        // extract only the fielname
        var fileName = Path.GetFileName(file.FileName);
        // store the file inside ~/App_Data/uploads folder
        var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName);
        file.SaveAs(path);
    }
    // redirect back to the index action to show the form once again
    return RedirectToAction("Index");        
}
  • 0
    Привет, у меня не было проблем с загрузкой файла. Я хотел в дополнение к этому текст, выбранный в раскрывающемся списке. Разместил рабочий код ниже. Спасибо за вашу помощь, хотя.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню