Как вызвать void метод класса C # из JavaScript - ASP .Net MVC C # - PullRequest
0 голосов
/ 02 мая 2018

Мне нужна ваша помощь для решения проблемы, которую мне не удается решить.

У меня есть эта форма в моей программе для загрузки файла

@using(Html.BeginForm("UploadDocuments", "User", FormMethod.Post, new { enctype = "multipart/form-data", id = "form-upload-documents" }))
{
    @Html.AntiForgeryToken()
    <ul id="UploadContainer" class="upload-container" data-last-id="0">
        <li class="col-upload-figure">
            <figure class="upload-figure">
                <label class="btn-upload" for="Picture_0">
                    <span class="btn-upload-text">Add a picture</span>
                </label>
                <input class="custom-input-file" data-id="0" id="Picture_0" name="Picture_0" type="file">
            </figure>
        </li>
    </ul>
    <div class="form-submit">
        <button class="btn btn-primary btn-loader" data-style="expand-right" type="submit">Submit</button>
    </div>
}

И я проверяю размер файла, который я хочу загрузить, с помощью javascript. Если файл слишком большой, я хотел бы вызвать метод void класса C #, не покидая текущей страницы

    $('#Picture_0').change(function() {
        var files = $(this).prop('files');
        var fullPath = $(this).val();
        if (files[0].size > 4*1024*1024) {
            $('#Picture_0').val('')*;

            // The function of a specific class I would like to call
        }
        else{
            //...
        }
    })

Как мне это осуществить?

Ответы [ 3 ]

0 голосов
/ 02 мая 2018

Вы можете назвать это ajax,

public ActionResult MethodName()
{
    // your logic
    EmptyResult e = new EmptyResult();
    return e;
}
0 голосов
/ 02 мая 2018

Ну, если он находится в контроллере, то он должен иметь ActionResult в качестве типа возврата.

Однако если вы хотите вызвать функцию, вам следует использовать webapi.

0 голосов
/ 02 мая 2018

Ajax-вызов решит это. Что-то вроде:

$.ajax({
    url:'@Url.Action("Action", "controller")',
    type: 'POST',
    data: //Your data,      //Possibly a json
    contentType: 'Application/json',
    success: function(result)
    {

    }
});
...