我需要在控制器中获取Guid.Empty并将其传递给view。我尝试使用ViewBag,我在控制器中添加了这段代码
public class QuestionnaireController : Controller
{
//....
ViewBag.EmptyGuid = Guid.Empty;
}
并在视图中添加了此代码
if (rowobject[6] == ViewBag.EmptyGuid) { //...}
但是我在控制器中遇到了一些错误
Error 1 Invalid token '=' in class, struct, or interface member declaration
Error 2 Invalid token ';' in class, struct, or interface member declaration
什么是错的以及如何使其有效?
UPD
我在控制器中更改了代码(我在方法中添加了ViewBag.EmptyGuid
)
[HttpGet]
public ActionResult QuestionnaireIndex()
{
ViewBag.EmptyGuid = Guid.Empty.ToString();
FillViewBags();
return View();
}
这是我视图中的脚本
@section scripts{
<script type="text/javascript"> function buttonize(cellvalue, options, rowobject) {
var buttons = '';
if (rowobject[5] == "False") {
buttons += '<input type="button" value="Edit" onclick="editQuestionnaire(' + options.rowId + ')">';
}
buttons += '<input type="button" value="Delete" onclick="deleteQuestionnaire(' + options.rowId + ')">';
if (rowobject[6] == ViewBag.EmptyGuid) {
buttons += '<input type="button" value="Publish" onclick="publishQuestionnaire(' + options.rowId + ')">';
}
else {
buttons += '<input type="button" value="Remove" onclick="removePublishQuestionnaire(' + options.rowId + ')">';
}
return buttons;
}
</script>
}
答案 0 :(得分:2)
您在类中直接拥有代码,您需要一个方法。例如:
public class QuestionnaireController : Controller
{
public ActionResult Index()
{
ViewBag.EmptyGuid = Guid.Empty;
return View();
{
}
此错误实际上与MVC无关:这是无效的C#语法,并且您收到编译错误。
侧面说明 - 当你可以使用强类型模型时,我建议不要使用ViewBag
(或几乎所有)。同样适用于rowobject[6]
:我不确定那是什么,但您绝对不希望在View上使用数据读取器。到数据在视图中时,它应该已经转换为模型
另一方面,我认为在视图上使用Guid.Empty
或default(Guid)
并不是错误。