View无法识别我的视图模型

时间:2013-07-20 22:31:47

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

我在不同项目(类库)中的viewmodel。我添加了参考。但是当我从我的mvc4视图中调用它时,如@model Fancy.Management.Model.Home.IndexModel。查看无法识别它。我不知道的问题是什么。 我的观点如下所示:

@model Fancy.Management.Model.Home.IndexModel
<html>
<head>
    <title>Giriş</title>
</head>
<body>
   @Html.BeginForm(){
     <table>
        <tr>
            <td>Kullanıcı Adı:</td>
            <td>@Html.TextBoxFor(m=>m.UserName)</td>
        </tr>
        <tr>
            <td>Şifre:</td>
            <td>@Html.PasswordFor(m=>m.Password)</td>
        </tr>
         <tr>
             <td></td>
             <td><input type="submit" value="Giriş" /></td>
         </tr>
    </table>
    }
</body>
</html>

我的控制器如下所示:

namespace Fancy.Web.Management.Controllers
{
#region Using Directives
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
#endregion

public class HomeController : Controller
{
    #region Get
    public ActionResult Index()
    {
        return View();
    } 
    #endregion

}
}

我的模型如下所示:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Fancy.Management.Model.Home
{
public class IndexModel
{
    public string UserName { get; set; }
    public string Password { get; set; }
}
}

2 个答案:

答案 0 :(得分:10)

你为模特添加了一个参考?好的,这还不够,以便您的视图可以看到它。

首先,打开位于Views文件夹中的web.config文件。然后,为您的模型类添加命名空间标记,如下所示:

<system.web.webPages.razor>
// ...
<pages pageBaseType="System.Web.Mvc.WebViewPage">
  <namespaces>
    // ...
    <add namespace="Fancy.Management.Model" />
    // ...
  </namespaces>
</pages>

最后在您的视图中更改@model,如下所示:

@model Home.IndexModel

问题应该消失......

答案 1 :(得分:2)

像这样使用

 public class HomeController : Controller
 {
   #region Get
   public ActionResult Index()
   {
        IndexModel inModel=new IndexModel();
        return View(inModel);
   } 
   #endregion

 }
}