مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

oyama1100

عضویت از 1395/02/23

مشکل Object reference not set to an instance of an object

  • شنبه 19 تیر 1395
  • 22:22
تشکر میکنم
با سلام ممنون می شم دوستان کمکم کنید 
از لاین موجود در 
dropdownlist 
ارور می ده می گه
Object reference not set to an instance of an object
ممنون می شم کمکم کنید هر کار کردم نشد

TestController
 ----------------------
     [HttpGet]
        public ActionResult AddReseller()
        {
            var blOstan = new OstanRepository();
            var model = new MVCInternetShop.ViewModels.Test.AddRepositoryViewModel();
            model.Ostans = blOstan.Select().ToList();
            return View(model);
        }
        [HttpPost]
        public ActionResult AddReseller(Reseller reseller)
        {
            if (ModelState.IsValid)
            {
                var blReseller = new ResellerRepository();
                if (blReseller.Add(reseller))

                    ViewBag.Message = "نمایندگی ثبت شد";
                else
                    ViewBag.Message = "نمایندگی ثبت نشد";
            }
            else
                ViewBag.Message = "مقادر ورودی نا معتبر است";   
            return View();
        }

---------------------

view model

--------------------

using MVCInternetShop.Models.DomainModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace MVCInternetShop.ViewModels.Test
{
    public class AddRepositoryViewModel
    {
        public Reseller Reseller { get; set; }
        public IEnumerable<Ostan> Ostans { get; set; }
    }
}

 

----------------------------------

AddReseller view

--------------------------------------

@model MVCInternetShop.ViewModels.Test.AddRepositoryViewModel

@{
    ViewBag.Title = "AddReseller";
}

<h2>@ViewBag.Message</h2>

@using (Html.BeginForm("AddReseller","Test",FormMethod.Post))
{
    @Html.AntiForgeryToken()

    <div class="form-horizontal">
        <h4>Reseller</h4>
        <hr />
        @Html.ValidationSummary(true, "", new { @class = "text-danger" })
        <div class="form-group">
            @Html.LabelFor(model => model.Reseller.Name, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.Reseller.Name, new { htmlAttributes = new { @class = "form-control" } })
                @Html.ValidationMessageFor(model => model.Reseller.Name, "", new { @class = "text-danger" })
            </div>
        </div>
        <div class="form-group">
            @Html.LabelFor(model => model.Reseller.Address, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.Reseller.Address, new { htmlAttributes = new { @class = "form-control" } })
                @Html.ValidationMessageFor(model => model.Reseller.Address, "", new { @class = "text-danger" })
            </div>
        </div>
        <div class="form-group">
            @Html.LabelFor(model => model.Reseller.OstanId, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.DropDownListFor(model => model.Reseller.OstanId, new SelectList(Model.Ostans, "Id", "Name"), "استان مورد نظر خود را انتخاب کنید", null)
                @Html.ValidationMessageFor(model => model.Reseller.OstanId, "", new { @class = "text-danger" })
            </div>
        </div>

        <div class="form-group">
            <div class="col-md-offset-2 col-md-10">
                <input type="submit" value="Create" class="btn btn-default" />
            </div>
        </div>
    </div>
}

پاسخ های این پرسش

تعداد پاسخ ها : 3 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • یکشنبه 20 تیر 1395
  • 08:34

مدل را به شکل زیر تغییر دهید و امتحان کنید

  public class AddRepositoryViewModel
    {
        public Reseller Reseller { get; set; }
        public IEnumerable<Ostan> Ostans { get; set; }
public AddRepositoryViewModel()
{
Ostans =new IEnumerable<Ostan>();
}
    }

 

کاربر سایت

oyama1100

عضویت از 1395/02/23

  • یکشنبه 20 تیر 1395
  • 20:30

تشکر از شما که همیشه پاسخ می دید

ولی جناب مدائنی وقتی این سازنده رو به کلاس viewmodel خودم add می کنم

چون IEnumerable خودش یه اینترفیس هست پس نمی شی ازش آبجکتی ساخت یعنی نمی شه از new براش استفاده کرد

اروری که می ده هم اینه

Cannot create an instance of the abstract class or interface

ممنون می شم راهنمایی بفرمایید

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • دوشنبه 21 تیر 1395
  • 19:12

درسته من دقت نکرده بودم

بعد از New از list<> استفاده کنید

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)