mvc 3 Элемент модели, переданный в словарь, относится к типу A, но для этого словаря требуется элемент модели типа B - PullRequest
1 голос
/ 15 марта 2012

Я получаю следующую ошибку:

The model item passed into the dictionary is of type '...Models.VideoPostingModel', but this dictionary requires a model item of type '...Models.RegisterModel'.

Я не уверен, в чем проблема, потому что модели соответствуют ...

Контроллер:

ссистема;using System.Collections.Generic;использование System.Linq;использование System.Web;использование System.Web.Mvc;использование stayyolo.Models;использование System.Web.Security;using System.Data;

...Controllers
{
    public class VidsPostingController : Controller
    {

        private dbEntities db = new dbEntities();
        //
        // GET: /VidsPosting/



        public ActionResult Details(Guid id)
        {
            Posting posting = db.Postings.Find(id);
            if (posting.Image == null)
            {
                posting.Image = new byte[0];
                db.Entry(posting).State = EntityState.Modified;
                db.SaveChanges();
            }
            //convert ENTITY MODEL CLASS TO Model
            VideoPostingModel toRet = new VideoPostingModel();
            toRet.linkIfVideo = posting.LinkIfVideo;
            toRet.PostDate = posting.PostDate;
            toRet.Titile = posting.Titile;
            toRet.TypeOfPosting = posting.TypeOfPosting;
            return View(toRet);
        }

}

Модель:

public class VideoPostingModel
{
    ..Variables

    public VideoPostingModel()
    {
        ...

    }
}


View: 

@model ...Models.VideoPostingModel

@{
    ViewBag.Title = "Details";
}

<fieldset>
    <legend>Posting</legend>
    <div class="display-label">
        Description</div>
    <div class="display-field">
        @Html.DisplayFor(model => model.Description)
    </div>
    <div class="display-label">
        Title</div>
    <div class="display-field">
        @Html.DisplayFor(model => model.Titile)
    </div>
    <div class="display-label">
        Post Date</div>
    <div class="display-field">
        @Html.DisplayFor(model => model.PostDate)
    </div>
    <div class="display-label">
        Type Of Posting</div>
    <div class="display-field">
        @Html.DisplayFor(model => model.TypeOfPosting)
    </div>
</fieldset>


        <div id="youtubePlayerdiv"">
        <p style="text-align: justify">
        Video!</p>
        <iframe  id="youtubePlayer" class="youtube-player" type="text/html"
        width="640" height="385" src="http://www.youtube.com/embed/<%=Model.LinkIfVideo%>" frameborder="0">
        </iframe>
        </div>
        <!-- end youtubeplayerDiv div -->

Я очень благодарен за помощь заранее, проблема возникает, когда веб-сайт попадает в метод подробностей контроллера.*

1 Ответ

1 голос
/ 15 марта 2012

Ошибка, которую вы получаете, подразумевает, что где-то в вашем представлении или _Layout вы пытались визуализировать другой фрагмент, подобный этому:

@Html.Partial("~/Views/Account/Register.cshtml")

Но для этого партиала требуется другая модель - RegisterModel. Поэтому одна возможность - передать новый экземпляр этой модели в партиал при его рендеринге:

@Html.Partial("~/Views/Account/Register.cshtml", new RegisterModel())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...