【发布时间】:2011-11-18 14:27:29
【问题描述】:
我正在将一个字符串列表传递到一个 razor 视图页面,我想在呈现 HTML 要求更正它们之前检查是否有任何错误。
我的代码可以正常编译,但在呈现页面时会产生编译错误。 错误是:
说明:编译资源时出错 需要为该请求提供服务。请查看以下具体内容 错误详细信息并适当地修改您的源代码。
编译器错误消息: CS1501:方法 'Write' 没有重载需要 0 论据
这是我要渲染的代码:
@model UNICH.Settings.SettingsModel
@{
ViewBag.Title = "Edit";
}
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
@{
// Retrieve the server generated config errors from the ViewData
List<string> errors = ViewData["ConfigErrors"] as List<string>;
if( errors != null && errors.Count > 0 )
{
// We have some errors to display
<div>
<h3>The following errors need attention before the configuration can be saved</h3>
<ul>
@foreach( var error in errors)
{
// Display the errors that require attention
<li>
@error
</li>
}
</ul>
</div>
}
}
<fieldset>
<legend>Database Configuration</legend>
<table>
<tr>
<th>
Parameter
</th>
<th>
Value
</th>
<th>
Error
</th>
</tr>
<tr>
<td>
<h4>
Database Type</h4>
</td>
<td>
@Html.DropDownListFor(model => model.DBType, ViewData["DBTypes"] as SelectList, "select a value")
</td>
<td>
@Html.ValidationMessageFor(model => model.DBType)
</td>
</tr>
<tr>
<td>
<h4>
Server Name</h4>
</td>
<td>
@if( Model.DBType != "Oracle")
{
@Html.EditorFor(model => model.DBServerName)
}
</td>
<td>
@Html.ValidationMessageFor(model => model.DBServerName)
</td>
</tr>
<tr>
<td>
<h4>
Instance Name</h4>
</td>
<td>
@Html.EditorFor(model => model.DBInstanceName)
</td>
<td>
@Html.ValidationMessageFor(model => model.DBInstanceName)
</td>
</tr>
<tr>
<td>
<h4>
DB User Name</h4>
</td>
<td>
@Html.EditorFor(model => model.DBUsername)
</td>
<td>
@Html.ValidationMessageFor(model => model.DBUsername)
</td>
</tr>
<tr>
<td>
<h4>
Database Password</h4>
</td>
<td>
@Html.EditorFor(model => model.DBPassword)
</td>
<td>
@Html.ValidationMessageFor(model => model.DBPassword)
</td>
</tr>
</table>
</fieldset>
<div>
<p>
<input type="submit" value="Save" />
</p>
</div>
}
<div>
@Html.ActionLink("Discard Changes", "Index")
</div>
【问题讨论】:
-
只是想知道,为什么要在字符串上调用 ToString()?
-
@RichardD,这只是一种沮丧的行为,并尝试任何事情让它发挥作用。 :o(
-
很公平:D 我有很多类似的事情。
-
对我来说仍然可以正常工作。这就是你所有的代码吗?它是否告诉您错误发生在哪一行?
-
@TeamWild 这很有意义,您可以将其保留在 BeginForm 块内,但只需删除它周围的
@{ }。您应该发布您的解决方案作为答案并接受它。
标签: asp.net-mvc-3 razor