MVC c#将信息从控制器传递到视图

本文关键字:视图 控制器 信息 MVC | 更新日期: 2023-09-27 18:13:12

我有一个问题,我有一点麻烦弄清楚。我需要传递一些数据,一个字符串,从一个控制器到一个已经强类型视图。我目前在一个实时环境中工作,所以我不完全知道结构或其他控制器/视图被传递,除了我正在工作的那些。

我猜有不止一个,因为一个简单的ViewBag似乎不起作用。我试过在viewbag中存储字符串,但那没有显示在视图上。为了说明,我使用了:

Viewbag.PassedString = "This is a test"

.

<div> @Viewbag.PassedString </div>

不管怎样,就像我说的那样没有工作,我猜数据在这个过程中丢失了。接下来,我尝试使用TempData,但这也不起作用。

我忘记什么重要的事了吗?有没有别的办法来完成这项工作?

MVC c#将信息从控制器传递到视图

这里有个错别字两边的属性名应该是一样的比如你把视图中的"p"调小了而不是那样,

<div> @Viewbag.PassedString </div>

: -

从你的查询我理解,你正在返回json, ViewBag是用来传递数据从控制器到视图引擎。在这种情况下,你返回的是json,没有视图,所以要使Viewbag工作,它应该返回一个视图。

再更新一次:-

在你的代码中,我猜你可以在这里传递object:-

 return Json(dataYouWantToPass, JsonRequestBehavior.AllowGet);

代替

return Json("", JsonRequestBehavior.AllowGet);

,在你的jquery中你可以得到下面的成功调用:-

$.ajax({
                cache: false,
                type: "GET",
                url: "@(Url.Action("GetDownloadLink", "Export"))",
                data: { "stadId": stadId, "catId": catId },
                success: function(data) {
                    $('#bezig-tekst').html('');
                    $('#download-link').show();
                    alert(data); ////here you get the data you sent from controller.
                },
                error: function(xhr, ajaxOptions, thrownError) {
                    alert('Failed to retrieve xml.');
                }
            });
        });

您有一些语法错误(您使用什么作为编辑器?)你应该在你的控制器中使用这个:

ViewBag.PassedString = "This is a test";

@ViewBag.PassedString