Как передать переменную из контроллера для просмотра - PullRequest
0 голосов
/ 29 августа 2018

Я пытался передать значение из моего контроллера в представление, но оно не сработало.

Я передаю значение из представления в контроллер с помощью сценария Ajax, который прекрасно работает. Затем я хочу передать это значение контроллеру индекса и показать его в представлении для индекса.

Вот мой контроллер:

    static string global;
    public ActionResult Index(string id)
    {
        TempData["var"] = id;
        return View();
    }
    [HttpPost]
    public object functon(string data)
    {
        return Index(data);
    }

вот мой взгляд:

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

<input class="form-group" id="input"/>
<button class="btn btn-success" id="send">Send</button>

@if ((string)TempData["var"] == null)
{
    <span>Check</span>
}
else
{
    <h1>@TempData["var"].ToString()</h1>
}

@* SCRIPT *@
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
        $(function () {
            $("#send").click(function () {
                $.ajax({
                    type: "POST",
                    url: "/Acceptvalue/functon",
                    data: '{data: "' + $("#input").val() + '" }',
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (response) {
                    },
                    failure: function (response) {
                    },
                    error: function (response) {
                    }
                });
            });
        });
</script>

Ответы [ 2 ]

0 голосов
/ 29 августа 2018

Я использую ViewModels:

public virtual ActionResult Method()
    {
        MyViewModel vm = new MyViewModel();
        vm.Name = "MyName";
        return View(MVC.Controller.Views.MyView, vm); //also works with partial views
    }

А потом, на мой взгляд:

@model MyProject.ViewModels.MyViewModel

<h2>@Model.Name</h2>
0 голосов
/ 29 августа 2018

Используйте ViewBag и заполните его в вашем контроллере:

ViewBag.var = id

и затем получите к нему доступ:

@if(Viewbag.var == null)

Кроме того, отредактируйте свою функцию () с помощью:

return RedirectToAction("Index", new { id = data }); 
...