[英]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.