为什么当我尝试使用web配置中定义的值时出现错误?

时间:2017-11-01 13:24:45

标签: asp.net-mvc

我从事MVC5项目。

在我的网络配置中,我有以下关键值:

<add key="WebLayoutPath" value="../../data/reuno/?WEBLAYOUT={0}" />

我想在cshtml里面的iframe元素中使用上面的键值,查看页面。

所以我改变了这个:

<div class="tab-pane fade in active" id="mgArea">
   <iframe id="iframeMgMap" 
           src="@(string.Format("../../data/reuno/?WEBLAYOUT={0}",Model.MgPath))"
           frameborder="0"
           scrolling="no"
           style="width:100%;height:100%;"></iframe>
</div>

到此:

<div class="tab-pane fade in active" id="mgArea">
    <iframe id="iframeMgMap"     
            src="@(string.Format(System.Configuration.ConfigurationManager.AppSettings["WebLayoutPath"],Model.MgPath))"
            frameborder="0"
            scrolling="no"
            style="width:100%;height:100%;"></iframe>
</div>

但是当我做出更改时,我得到了这个错误:

"Value cannot be null.\r\nParameter name: format"   

我认为syntex的问题是src属性。

知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

您可以考虑将其传递给ViewBag

中操作本身的视图
//...
var format = System.Configuration.ConfigurationManager.AppSettings["WebLayoutPath"];
var path = string.Format(format, model.MgPath);
ViewBag.MgPath = path;

return View(model);

并在视图

中访问它
<div class="tab-pane fade in active" id="mgArea">
   <iframe id="iframeMgMap" 
           src="@((string)ViewBag.MgPath)"
           frameborder="0"
           scrolling="no"
           style="width:100%;height:100%;"></iframe>
</div>