Merhaba benim bakış MüşteriAdı, ContactPerson, Email, MobileNoBasamaklı metin kutusu MVC4'te düzgün çalışmıyor mu?
MüşteriAdı ve Menüsünü Cascading vardır ContactPerson ve E-posta ve MobileNo metin kutularının olan dört alanlarına sahiptir.
MüşteriAdı'nı seçtiğimde, ContactPerson açılan menüsündeki ilgili Kişi Kişisi otomatik olarak yüklenir.
Ben ContactPerson seçerseniz İletişim kişi ile ilgili Eposta ve PhoneNo E-posta ve PhoneNo metin kutusuna otomatik olarak yükleyecektir. Bu beklendiği gibi çalışır.
Şimdi tüm çalışıyoruz iyi çalışıyoruz iki basamaklı açılan şimdi iyi benim ilgili kişi e-posta ve telefon no ilgili kişi ile ilgili telefon numarasını göstermiyor ilgili kişi seçerseniz benim sorunumdur.
Benim Kontrolörü Kodu:
public JsonResult GetCustomers()
{
return Json(db.Customers.ToList(), JsonRequestBehavior.AllowGet);
}
public JsonResult GetContactPersobByCustomerId(string customerId)
{
Guid Id = Guid.Parse(customerId);
var customercontacts = (from a in db.CustomerContacts where a.CustomerID == Id select a);
return Json(customercontacts, JsonRequestBehavior.AllowGet);
}
public JsonResult GetPhoneNoByContactPersonID(Guid CustomerContactId)
{
var resultMobileNumber = string.Empty;
var resultEmail = string.Empty;
var ContactID = db.CustomerContacts.Where(i => i.CustomerContactID == CustomerContactId).Select(i => i.ContactID).FirstOrDefault();
if (ContactID != null)
{
var contact = (from p in db.Contacts where p.ContactID == ContactID select p).FirstOrDefault();
if (contact != null)
{
if (string.IsNullOrEmpty(contact.Mobile1) == false)
{
resultMobileNumber = contact.Mobile1;
}
else if (string.IsNullOrEmpty(contact.Mobile2) == false)
{
resultMobileNumber = contact.Mobile2;
}
}
if (contact != null)
{
if (string.IsNullOrEmpty(contact.Email1) == false)
{
resultEmail = contact.Email1;
}
else if (string.IsNullOrEmpty(contact.Email2) == false)
{
resultEmail = contact.Email2;
}
}
}
var details = new { success = true, email = resultEmail, mobileno = resultMobileNumber };
return Json(details, JsonRequestBehavior.AllowGet);
}
Görünüm Kodu:
@Html.Label("Customer Name", new { @class = "control-label" })
@Html.DropDownListFor(model => model.CustomerID, new SelectList(string.Empty, "Value", "Text"), "Please select a Customer", new { @class = "form-control required", type = "text" })
@Html.Label("Contact Person", new { @class = "control-label" })
@Html.DropDownListFor(model => model.CustomerContactID, new SelectList(string.Empty, "Value", "Text"), "Please select a ContactPerson", new { @class = "form-control", type = "text", id = "CustomerContactID" })
@Html.LabelFor(model => model.MobileNo, new { @class = "control-label" })
@Html.TextBoxFor(model => model.MobileNo, new { @class = "form-control", type = "text",disabled = "disabled", @readonly = "readonly" })
@Html.ValidationMessageFor(model => model.MobileNo)
@Html.LabelFor(model => model.Email, new { @class = "control-label" })
@Html.TextBoxFor(model => model.Email, new { @class = "form-control", type = "text" ,disabled = "disabled", @readonly = "readonly" })
@Html.ValidationMessageFor(model => model.Email)
J-sorgu Kod
<script src="~/Scripts/jquery-ui-1.11.0.js"></script>
<script>
$(function() {
$.ajax(
'@Url.Action("GetCustomers", "VisitorsForm")',{
type: "GET",
datatype: "Json",
success: function (data) {
$.each(data, function (index, value) {
$('#CustomerID').append('<option value="' + value.CustomerID + '">' + value.DisplayName + '</option>');
});
}
});
$('#CustomerID').change(function() {
$('#CustomerContactID').empty();
$.ajax(
'@Url.Action("GetContactPersobByCustomerId", "VisitorsForm")',{
type: "POST",
datatype: "Json",
data: { CustomerID: $('#CustomerID').val() },
success: function (data) {
$('#CustomerContactID').append($('<option></option>').val('').text('Please select'));
$.each(data, function (index, value) {
$('#CustomerContactID').append('<option value="' + value.CustomerContactID + '">' + value.ContactReference + '</option>');
});
}
});
});
});
$("#CustomerContactID").change(function() {
alert("hhh");
debugger;
$.ajax(
'@Url.Action("GetPhoneNoByContactPersonID", "VisitorsForm")',{
type: "GET",
dataType: "html",
async: false,
data: { CustomerContactID: $("#CustomerContactID").val()
},
error: function (ex) {
alert('Failed to retrieve Email.' + ex);
},
beforeSend: function() {
},
success: function (data) {
$("#Email").val(data.email);
$("#MobileNo").val(data.mobileno)
alert("Success");
}
});
});
Artık tüm ar e GetPhoneNoByContactPersonID eylemine geldiğiniz kişi kişiyi tıklattığımda iyi çalışıyor, değerleri hesaplar ve tekrar ans görünümüne geri döner ve Ağ'da da görülebilir. Hepsi mükemmel, ancak verileri metin kutusunda göstermiyor. Kodu incelerken konsolda herhangi bir hata göstermedi. Ama aşağıda belirtilen bir uyarı mesajını gösterir.
Artık tüm iyi çalışıyor. Ama neden görmediğimi anlamıyorum, sorun nerede? Sorunumu açıklamak için benim seviyemi denedim. -herhangi biri bu konuyu temizlememe yardım etsin.Peşin teşekkürler
bu çalışması gerekir ama değerler set.I umut verilerini etti sağlayıp sağlamadığını sen özürlü ve salt okunur özniteliğini kaldırmak ve görebileceğiniz başka testler için ok – Susan
Çalışmıyor başarı geri dönüş değeri –
tamam neel bir kontrol var – Susan