0

如果该消息不是视图作为输入的模型的一部分,控制器如何告诉视图显示特定消息?

例如,在进行操作后,我在视图中显示操作的结果,即模型中的“消息”字段。但是如果模型操作后没有数据,当然也不会显示消息。

该模型:

public class xxViewModel
{
    public string a { get; set; }
    public string b{ get; set; }
    public string c{ get; set; }
    public string d{ get; set; }
    public string Message { get; set; }
}

在视图中:

@Model.ElementAt(0).Message

该视图提供了删除表行的可能性;在执行过程中删除最后一个模型元素(表格行)后,我想显示一条消息,但当然不可能。也许我必须使用类似会话的东西?

4

3 回答 3

0

使用包含数据和消息的视图模型怎么样?喜欢 :

public class xxViewModel
{
    public string a { get; set; }
    public string b{ get; set; }
    public string c{ get; set; }
    public string d{ get; set; }
}

public class MainViewModel
{
    public string Message { get; set; }
    public IEnumerable<xxViewModel> Elements { get; set; }
}

您的视图如下所示:

@model myNamespace.MainViewModel

@Html.DisplayFor(m => m.Message) // displaying your message

@foreach(xxViewModel elem in Model.Elements)
{
    // display what you want
}
于 2013-11-07T10:09:37.437 回答
0

如果您不需要存储此消息以供进一步使用只是为了显示它,您可以执行以下操作:

public class xxViewModel
{
    public string a { get; set; }
    public string b{ get; set; }
    public string c{ get; set; }
    public string d{ get; set; }
}

然后控制器是这样的:

public class Controller
{
    public ActionResult YourMethod()
    {
       // here you can set whatever message you want to display after the operation
        ViewData["Message"] = your message;
        return View(Model);
    }
}

在您看来,您只需像这样调用消息:

@model myNamespace.xxViewModel

@foreach(var item in Model)
{
    // do some stuff
}

@Html.Label(ViewData["Message"].ToString())
于 2013-11-07T19:26:31.850 回答
0

在您的控制器中设置一个 ViewData / ViewBag 属性。在你的视野中消费它。

于 2013-11-07T11:44:31.493 回答