мы можем передать всю модель в javascript asp.net mvc - PullRequest
0 голосов
/ 01 июля 2011

У меня проблема в том, что при вызове javascript для отправки формы модель обновляется с контроллера, но она не обновляется в представлении. Я думаю обновить модель до новых значений модели в JavaScript. так что представление показывает последние значения модели это можно сделать?

спасибо, майкл

1 Ответ

0 голосов
/ 03 июля 2011

Ваш вопрос крайне неясен, и вы не предоставили исходный код, который делает вещи еще более неясными.Из различных комментариев, которые вы, возможно, разместили, я предполагаю, что вы пытаетесь обновить какое-либо значение модели внутри действия POST, не удаляя его из состояния модели, и когда снова отображается то же представление, отображаются старые значения.

Итак, я полагаю, у вас есть модель представления, которая выглядит примерно так:

public class MyViewModel
{
    public HttpPostedFileBase File { get; set; }
    public string SomeValue { get; set; }
}

и контроллер:

public class HomeController : Controller
{
    public ActionResult Index()
    {
        var model = new MyViewModel
        {
            SomeValue = "initial value"
        };
        return View(model);
    }

    [HttpPost]
    public ActionResult Index(MyViewModel model)
    {
        // Notice how the SomeValue property is removed from the
        // model state because we are updating its value and so that
        // html helpers don't use the old value
        ModelState.Remove("SomeValue");
        model.SomeValue = "some new value";
        return View(model);
    }
}

и представление:

<% using (Html.BeginForm(null, null, FormMethod.Post, new { enctype = "multipart/form-data" })) { %>
    <div>
        <%= Html.LabelFor(x => x.SomeValue) %>
        <%= Html.EditorFor(x => x.SomeValue) %>
    </div>
    <div>
        <label for="file">Attachment</label>
        <input type="file" name="file" />
    </div>
    <input type="submit" value="OK" />
<% } %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...