繁体   English   中英

如何将模型从MVC视图传递到角度控制器?

[英]How to pass model from MVC view to angular controller?

我有这样的看法:

    <div class="form-group">
    <label for="licencenumber" class="control-label col-lg-5 col-md-6">                                             @Html.Label(@Translator.Translate("DOC_NUMBER")):
    <span ng-show="!documentNumber" class="required">*</span>
    </label>
    <div class="col-lg-7 col-md-6">
    @Html.TextBoxFor(m => m.DocumentNumber, new { @class = "form-control", id = "documentNumber", @maxlength = "13", ng_model = "documentNumber", ng_pattern = @"/[a-zA-Z0-9]{4,10}$/", @required = "required" })</div>
    </div>

<div class="form-group">
<label for="mobile-number" class="control-label col-lg-5 col-md-6">@Html.Label(@Translator.Translate("MOBILE_NUMBER")): </label>
<div class="col-lg-7 col-md-6">
@Html.TextBoxFor(m => m.MobilePhone, new { @class = "form-control", id = "mobile-number", mask = "(999)999-999", @placeholder = "(999)999-999" })
</div></div>
  <div class="form-group">
<label for="region" class="control-label col-lg-5">@Html.Label(@Translator.Translate("REGION")):</label>
<div class="col-lg-7">
<select ng-model="selectedRegion" required class="form-control" ng-change="LoadCities(selectedRegion)">
<option value="">@Translator.Translate("PLEASE_SELECT")</option>
<option ng-repeat="regions in Regions" value="{{regions.Id}}">{{regions.Name}} </option>
</select>
</div>
</div>

如何将所有这些传递给角度控制器? 当我使用此代码波纹管,我得到了很多东西,但我只是想从这个模型被称为PersonalInformationModel但是当我试图访问它我cant..i试图与访问它的值this.Model.PersonalInformation ,但我不看到这个个人信息

 var model = Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(this.Model)); 

编辑:我的PersonalInformationModel看起来像这样:

 public class PersonalInformationModel : MainModel
    {
        public PersonalInformationModel(string username)
        {
            IUserManager manager = UserFactory.GetUserManager(WebConfiguration.DefaultTerminalId);
            IUser user = manager.GetUser(username);

            IUserContactInformation ci = user.ContactInformation.FirstOrDefault();
            IUserBankAccount ba = user.UserBankAccount.FirstOrDefault();
            IUserVerificationDocument vd = user.VerificationDocuments.FirstOrDefault();

            if (ci != null)
            {
                Countries = new SelectList(manager.GetCountries(), "Id", "Name");
                City = new SelectList(manager.GetCities(ci.City.Region.Id), "Id", "Name");
                Region = new SelectList(manager.GetRegions(ci.City.Region.Country.Id), "Id", "Name");
                Email = ci.Email;
                MobilePhone = ci.MobilePhone;
                Phone = ci.Phone;
                Address = ci.StreetAddress;
                SelectCountryId = ci.City.Region.Country.Id;
                SelectRegionId = ci.City.Region.Id;
                SelectCityId = ci.City.Id;
            }
            else
            {
                Countries = new SelectList(new List<ICountry>(), "Id", "Name");
                City = new SelectList(new List<ICity>(), "Id", "Name");
                Region = new SelectList(new List<IRegion>(), "Id", "Name");
            }

            if (ba != null)
            {
                Iban = ba.Iban;
                SwiftBic = ba.SwiftOrBic;
            }

            if (vd != null)
            {
                DocType = vd.DocumentType;
                DocumentNumber = vd.DocumentNumber;
                DocumentDetails = vd.DocumentDetails;
            }

            Countries = new SelectList(manager.GetCountries(), "Id", "Name");
            UserName = username;
            FirstName = user.FirstName;
            LastName = user.LastName;
            BirthDate = user.BirthDate;
        }


        [Display(Name = "First name")]
        public string FirstName { get; set; }

        [Display(Name = "Last name")]
        public string LastName { get; set; }

        [Display(Name = "Username")]
        public string UserName { get; set; }

        [DataType(DataType.Date)]
        [Display(Name = "Birthdate")]
        public DateTime BirthDate { get; set; }

        [Display(Name = "Type of license")]
        public System.Web.Mvc.SelectList WebTypeOfLicense { get; set; }

        [Display(Name = "Type of license")]
        public UserDocumentType DocType { get; set; }

        [Display(Name = "License ID number")]
        public string DocumentNumber { get; set; }
        public string DocumentDetails { get; set; }
        [Display(Name = "Country")]
        public System.Web.Mvc.SelectList Countries { get; set; }

        [Display(Name = "Country")]
        public int SelectBankCountryId { get; set; }

        [Display(Name = "IBAN")]
        public string Iban { get; set; }

        [Display(Name = "SWIFT/BIC")]
        public string SwiftBic { get; set; }

        [Required(ErrorMessage = "*")]
        [Display(Name = "E-mail")]
        [DataType(DataType.EmailAddress)]
        public string Email { get; set; }

        [DataType(DataType.PhoneNumber)]
        [Display(Name = "Mobile phone")]
        public string MobilePhone { get; set; }

        [Display(Name = "Phone number")]
        [DataType(DataType.PhoneNumber)]
        public string Phone { get; set; }

        [Display(Name = "Address")]
        public string Address { get; set; }

        [Display(Name = "City")]
        public int SelectCityId { get; set; }
        public System.Web.Mvc.SelectList City { get; set; }

        [Display(Name = "Country")]
        public int SelectCountryId { get; set; }

        [Display(Name = "Region")]
        public int SelectRegionId { get; set; }

        public System.Web.Mvc.SelectList Region { get; set; }

        [DataType(DataType.Password)]
        [Display(Name = "Password")]
        public string Password { get; set; }

        [Display(Name = "Zipcode")]
        public string ZipCode { get; set; }
    }

使用当前结构,您需要使用可识别每个字段的角度的属性标记HtmlHelper。

MobilePhone为例:

@Html.TextBoxFor(m => m.MobilePhone, 
        new { @class = "form-control", id = "mobile-number", 
        mask = "(999)999-999", @placeholder = "(999)999-999", 
        ng_model="MobilePhone" })

注意ng_model="MobilePhone" ,这将输出ng-Model指令。

然后从您的角度控制器可以通过$scope来访问它:

$scope.MobilePhone

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM