【问题标题】:How to pass Controller Element value to View(.cshtml) div element value?如何将控制器元素值传递给 View(.cshtml) div 元素值?
【发布时间】:2014-07-14 14:01:44
【问题描述】:

我使用 .net C# 开发 WEB API 项目

我需要从 controller.cs 文件中获取值并将该值用于 View(.cshtml) 文件中。

我的控制器代码:

HomeController.cs

 XmlDocument doc = new XmlDocument();
 doc.Load(httpWebResponse.GetResponseStream());

        XmlElement TransID = (XmlElement)doc.SelectSingleNode("/CensusUploadResponse/TransactionID");
        if (TransID != null)
        {
            string ResultID = TransID.InnerText;

        }

我需要将 ResultID 传递给 Index.cshtml(Ex:ResultID = 17)

我查看.cshtml文件代码:

Index.cshtml

   <div runat="server" id="CensusuploadDiv"  style="border:1px solid black; width:420px;">

  </div>

我需要将该 ResultID 值分配给 CensusuploadDiv。

我尝试使用 ViewBag 使用以下方法。但它不起作用。

如下所示将 ResultID 分配给 ViewBag

  if (TransID != null)
        {
            string ResultID = TransID.InnerText;
            ViewBag.Test2 = ResultID;
        }

我得到了索引文件中的值,如下所示

<div runat="server" id="CensusuploadDiv"  style="border:1px solid black; width:420px;">
    @ViewBag.Test2
 </div>

但是值没有绑定到 div。

【问题讨论】:

  • “绑定到 div”是什么意思?
  • @DavidG 我需要将值分配给 div。
  • @DavidG 我只需要在 Div 中显示 17
  • 除非XmlElement TransID = (XmlElement)doc.SelectSingleNode("/CensusUploadResponse/TransactionID") 的值为空,否则您的代码应该可以工作?
  • 是的,只有不为空时才显示值

标签: asp.net-mvc asp.net-mvc-4 asp.net-web-api


【解决方案1】:

我通过使用 TempData 找到解决问题的方法。

TempData 帮了我很多...

我在 HomeController.cs 中使用 TempData 如下

string result = strBind.ToString();
TempData["Result"] = result;

在view.cshtml中

@TempData["Result"]

这对我来说很好......

【讨论】:

    【解决方案2】:

    您是否开发 Web API 或 ASP.NET MVC 项目?从视图中的控制器访问值的最佳方法是使用强类型模型:

    @model int
    
    <div>@Model</div>
    

    示例: 索引.cshtml

    @model int
    
    <div>@Model</div>
    

    HomeController.cs

    public ActionResult GetId()
    {
       int id;
       ....
       return View(id);
    }
    

    请注意,WebApi 和 MVC 控制器略有不同。但这就是它的工作原理。

    【讨论】:

    • 我是 webapi 新手,请告诉我在哪里使用 @model int 以及如何在控制器中分配值。请显示一些示例代码
    • 我用小例子扩展了我的答案。您还可以在 VisualStudio 中创建的默认项目模板中查看 Web API 项目示例。
    • 我需要在哪里使用“@model” int 在页面的开头或任何其他地方。“@model”和“@Model”的任何区别
    • 也许它有点令人困惑,因为在这个例子中我使用 int 作为模型。但是,假设我希望客户以某种形式出现。然后在 cshtml 文件的顶部,我将使用的模型声明为“model Customer”,然后在文件中我将使用它“Model.Name”等等。首先,您确定模型的类型 - “模型”,然后将其与属性“模型”一起使用。清楚吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-02
    • 1970-01-01
    • 2012-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多