Преобразуйте форму MVC3 (Razor) в форму Ajax - PullRequest
1 голос
/ 19 сентября 2011

У меня есть форма MVC3 Razor в index.cshtml, используя HtmlHelper. Это работает, но я хочу заменить его формой Ajax, используя AjaxHelper (примечание: я все еще не знаком с Ajax / jQuery). Это не удается. Мои вопросы:

  1. Что не так с моим кодом?
  2. Существуют ли хорошие веб-сайты, которые объясняют этот вид трансформации?
  3. Если преобразовать представление в обработку Ajax, нужно ли также менять контроллер?

Вот мой файл index.cshtml. Мое испытание с Ajax закомментировано под формой MVC3.

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-1.5.1.js")" type="text/javascript"></script>

@using ( Html.BeginForm("UploadFile", "Home", FormMethod.Post, new
{
    enctype = "multipart/form-data"
}) )
{
    @Html.ValidationSummary(true)
    <fieldset>
        <legend>Select a file</legend>
        <input type="file" id="fileupload" name="fileuploadname" />
        <p>
            <input type="submit" value="Upload" id="upload" onclick="javascript:document.getElementById('upload').disabled=true; document.getElementById('upload').value='Uploading...'" />
        </p>
    </fieldset>
}

@* @using ( Ajax.BeginForm("UploadFile", "Home",
                new AjaxOptions
                {
                    InsertionMode = InsertionMode.Replace,
                    HttpMethod = "POST"
                }) )
{
    <input type="file" id="fileupload" name="fileuploadname" />
    <p>
        <input type="submit" value="Upload" id="upload" onclick="javascript:document.getElementById('upload').disabled=true; document.getElementById('upload').value='Uploading...'" />
    </p>
}
*@

Спасибо заранее.

1 Ответ

1 голос
/ 19 сентября 2011

Вы не можете загружать файлы, используя Ajax.По крайней мере, не напрямую.

Конечно, есть несколько плагинов , которые помогут вам в этом, но они выходят за рамки AjaxHelper.Это просто означает, что вам придется испачкать руки с помощью jQuery , что тоже хорошо.Это простая и небольшая библиотека, и, знакомясь с ней, вы, скорее всего, отойдете от AjaxHelper и скорее просто будете использовать jQuery (с HtmlHelper).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...