当我的下拉列表正确填充时,为什么我的表单在提交时抛出空引用异常

问题描述

我在MVC5中创建了一个向导,并且有一个可以正确填充的下拉菜单,当我运行开发工具时,它会像预期的那样显示该下拉菜单的所有值,但是当我提交表单时,我收到以下信息错误import plotly.graph_objects as go bins = ["Age0-20","Age21-40","Age41-60"] passengers = ["14","27","19"] fig = go.figure() fig.add_trace(go.Histogram(histfunc="sum",y=passengers,x=bins,name="sum")) fig.update_layout(showlegend=True) fig.show() System.NullReferenceException: Object reference not set to an instance of an object.

向导中的所有其他下拉菜单都可以正常工作。只是这个似乎不想工作。我可能忽略了一个简单的错误

这是我的代码

查看:

System.Web.Mvc.WebViewPage<TModel>.Model.get returned null.

控制器:

@using (Html.BeginForm("Payment","NewUserSubscription",new { @id = string.Empty },FormMethod.Post,new { @id = "payment-form" }))

{

    @Html.AntiForgeryToken()



    <div class="form-horizontal">

        <h4>Step 4: Payment</h4>

        <hr />

        @Html.ValidationSummary(true)

        <div class="container">
            <div class="row">
                <div class="card shadow mb-4 w-100">
                    <div class="card-header py-3">
                        <h6 class="m-0 font-weight-bold text-primary">Payment</h6>
                    </div>
                    <div class="card-body">
                        <row>
                            <div class="form-group">
                                <label for="plan" class="control-label">Select a Plan</label><br />
                                @Html.DropDownListFor(model => model.planid,Model.subscriptionTypes,"None",new { @id = "plan",@class = "form-control" })
                                @Html.ValidationMessageFor(model => model.planid,"",new { @class = "text-danger" })
                            </div>

                            <div class="form-group">
                                <label for="card-number">
                                    Credit or debit card
                                </label>
                                <div id="card-number">
                                    <!-- A Stripe Element will be inserted here. -->
                                </div>
                            </div>

                            <div class="form-group">
                                <div class="row">
                                    <div class="col-md-6">
                                        <label for="card-cvc">
                                            CVC
                                        </label>
                                        <div id="card-cvc">
                                            <!-- A Stripe Element will be inserted here. -->
                                        </div>
                                    </div>
                                    <div class="col-md-6">
                                        <label for="card-expiration">
                                            Exp
                                        </label>
                                        <div id="card-expiration">
                                            <!-- A Stripe Element will be inserted here. -->
                                        </div>
                                    </div>
                                </div>
                            </div>
                            <!-- Used to display form errors. -->
                            <div id="card-errors" role="alert"></div>

                            <div class="form-group">

                                <div class="col-md-offset-2 col-md-10">

                                    <input type="submit" name="BtnPrevIoUs" value="PrevIoUs" class="btn btn-default" />

                                    <button class="form-control btn btn-primary" type="submit">Submit Payment</button>

                                </div>

                            </div>

                    </div>
                </div>
            </div>
        </div>
    </div>


}

viewmodel:

[HttpPost]
        public ActionResult ChurchAffiliation(ChurchAffiliation ChurchAffiliationData,string BtnPrevIoUs,string BtnNext)

        {

            login userSubscObj = GetUser();

            if (BtnPrevIoUs != null)

            {

                Security SecurityObj = new Security();

                SecurityObj.Password = userSubscObj.Password;
                SecurityObj.seclistid = userSubscObj.SecretQuestion;
                SecurityObj.Answer = userSubscObj.SecretAnswer;
                SecurityObj.Pin = userSubscObj.AccountPasscode.ToString();

                return View("Security",SecurityObj);

            }

            if (BtnNext != null)

            {
                
                if (ModelState.IsValid)

                {

                    userSubscObj.ChurchAffiliation = ChurchAffiliationData.chlist1id.GetValueOrDefault();
                    userSubscObj.ChurchAffiliation2 = ChurchAffiliationData.chlist2id.GetValueOrDefault();
                    userSubscObj.ChurchAffiliation3 = ChurchAffiliationData.chlist3id.GetValueOrDefault();
                    userSubscObj.ChurchAffiliation4 = ChurchAffiliationData.chlist4id.GetValueOrDefault();
                    Payment payment = new Payment();

                    payment.subscriptionTypes = new SelectList((from s in db.subscriptiontypes
                                                                  select new
                                                                  {
                                                                      ID = s.StripePriceID,FullName = s.SubscriptionType1 + " - $" + s.Price + "/Month "
                                                                  }),"ID","FullName");
                    return View("Payment",payment);

                }

            }
            Payment paymentRetry = new Payment();
            paymentRetry.subscriptionTypes = new SelectList((from s in db.subscriptiontypes
                                                        select new
                                                        {
                                                            ID = s.StripePriceID,FullName = s.SubscriptionType1 + " - $" + s.Price + "/Month "
                                                        }),"FullName");
            return View(paymentRetry);

        }

        [HttpPost]
        public ActionResult Payment(Payment PaymentData,string BtnNext)
        {

            login userSubscObj = GetUser();

            if (BtnPrevIoUs != null)

            {

                ChurchAffiliation ChurchAffiliationObj = new ChurchAffiliation();

                ChurchAffiliationObj.chlist1id = userSubscObj.ChurchAffiliation;
                ChurchAffiliationObj.chlist2id = userSubscObj.ChurchAffiliation2;
                ChurchAffiliationObj.chlist3id = userSubscObj.ChurchAffiliation3;
                ChurchAffiliationObj.chlist4id = userSubscObj.ChurchAffiliation4;
               


                return View("ChurchAffiliation",ChurchAffiliationObj);

            }

            if (BtnNext != null)

            {

                if (ModelState.IsValid)
                {
                    Personal@R_588_4045@ion Personal@R_588_4045@ionObj = new Personal@R_588_4045@ion();
                    var originalString = userSubscObj.Name;
                    var firstSpaceIndex = originalString.IndexOf(" ");
                    var firstName = originalString.Substring(0,firstSpaceIndex);
                    var lastName = originalString.Substring(firstSpaceIndex + 1);
                    Personal@R_588_404[email protected]irstName = firstName;
                    Personal@R_588_404[email protected] = lastName;
                    Personal@R_588_404[email protected] = userSubscObj.MusicianType;
                    Personal@R_588_404[email protected] = userSubscObj.MusicianType2;
                    Personal@R_588_404[email protected] = userSubscObj.Company;
                    Personal@R_588_404[email protected] = userSubscObj.UserName;
                    Personal@R_588_404[email protected] = userSubscObj.Address;
                    Personal@R_588_404[email protected] = userSubscObj.City;
                    Personal@R_588_404[email protected] = userSubscObj.State;
                    Personal@R_588_404[email protected] = userSubscObj.Zip.ToString();




                   
                    if (PaymentData.planid == "price_1HOnxHKAzhBUyKohQTIndEzD")
                    {
                        userSubscObj.UserType = 1;
                        userSubscObj.AccountType = Convert.ToString(1);
                    }
                    if (PaymentData.planid == "price_1HCsfAKAzhBUyKohfqJ1J0yO")
                    {
                        userSubscObj.UserType = 2;
                        userSubscObj.AccountType = Convert.ToString(2);
                    }
                    if (PaymentData.planid == "price_1HOnzlKAzhBUyKohZFNq7FRo")
                    {
                        userSubscObj.UserType = 3;
                        userSubscObj.AccountType = Convert.ToString(3);
                    }
                
                    db.logins.Add(userSubscObj);
                    db.SaveChanges();
                    RemoveUser();
                    return View("Success");

                }

            }

            return View();

        }
    }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)