簡體   English   中英

ASP.NET MVC ViewData.Model需要強制轉換

[英]ASP.NET MVC ViewData.Model requires casting

我正在研究我的第一個ASP.NET MVC應用程序並且有一個奇怪的問題。 關於使用強類型ViewData的所有教程都不需要對ViewData / Model對象進行轉換/評估,但是如果我不轉換為ViewData對象,則會出現編譯錯誤

ViewData類:

public class CategoryEditViewData
{
    public Category category { get; set; }
}

控制器動作:

public ActionResult Edit(int id)
{   
    Category category = Category.findOneById(id);
    CategoryEditViewData ViewData = new CategoryEditViewData();
    ViewData.category = category;
    return View("Edit", ViewData); 
}

作品:

<%=Html.TextBox("name", 
               ((Project.Controllers.CategoryEditViewData)Model).category.Name)) %> 

不起作用:

<%=Html.TextBox("name", Model.category.Name)) %> 

有什么東西我做錯了 - 或者我是否必須一直投射到視圖中的對象?

首先,您應該將CategoryEditViewData類移出控制器命名空間,並移入模型命名空間。 在Models文件夾下創建一個新類,看看它應該是什么樣子。 最好將模型放在模型文件夾下。

然后您的Control指令應如下所示:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Models.CategoryEditViewData >" %>

等等,想到了什么。 在你看來你繼承你的模特????

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<namespace.Controllers.YourFormViewModel>" %>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM