मैंने अभी व्यूमोडल्स का उपयोग करना शुरू कर दिया है। क्या आप लोग यह कोड देखने के लिए देख सकते हैं कि मैं सबसे अच्छा अभ्यास कर रहा हूं या नहीं? क्या साधारण से कुछ भी है? क्या आप सत्यापन को अलग-अलग करेंगे?एएसपी.नेट एमवीसी में व्यूमोडेल कार्यान्वयन - क्या यह कोड सबसे अच्छा अभ्यास है?
क्षमा करें यदि कोड लंबा है (इसमें बहुत सारे हिस्से हैं)। मैंने इसे यथासंभव समझने में आसान बनाने की कोशिश की है।
धन्यवाद!
मॉडल
public class CustomerModel
{
[Required(ErrorMessage="Primer nombre!")]
public string FirstName { get; set; }
[Required(ErrorMessage="Segundo nombre!")]
public string LastName { get; set; }
[Required(ErrorMessage="Edad")]
public int? Age { get; set; }
public string State { get; set; }
public string CountryID { get; set; }
[Required(ErrorMessage="Phone Number")]
public string PhoneNumber { get; set; }
}
ViewModel
public class CustomerViewModel
{
public CustomerModel Customer { get; set; }
public string Phone1a { get; set; }
public string Phone1b { get; set; }
public string Phone1c { get; set; }
}
नियंत्रक
public ActionResult Index()
{
CustomerViewModel Customer = new CustomerViewModel()
{
Customer = new CustomerModel(),
};
return View(Customer);
}
[HttpPost]
public ActionResult Index(CustomerViewModel c)
{
//ModelState.Add("Customer.PhoneNumber", ModelState["Phone1a"]);
// Let's manually bind the phone number fields to the PhoneNumber properties in
// Customer object.
c.Customer.PhoneNumber = c.Phone1a + c.Phone1b + c.Phone1c;
// Let's check that it's not empty and that it's a valid phone number (logic not listed here)
if (!String.IsNullOrEmpty(c.Customer.PhoneNumber))
{
// Let's remove the fact that there was an error!
ModelState["Customer.PhoneNumber"].Errors.Clear();
} // Else keep the error there.
if (ModelState.IsValid)
{
Response.Write("<H1 style'background-color:white;color:black'>VALIDATED</H1>");
}
return View("Index", c);
}
}
वी iew
@model MVVM1.Models.CustomerViewModel
@using (Html.BeginForm("Index", "Detail"))
{
<table border="1" cellpadding="1" cellspacing="1">
<tr>
<td>@Html.LabelFor(m => m.Customer.FirstName)</td>
<td>
@Html.TextBoxFor(m => m.Customer.FirstName)
@Html.ValidationMessageFor(m => m.Customer.FirstName)
</td>
</tr>
<tr>
<td>@Html.LabelFor(m => m.Customer.LastName)</td>
<td>
@Html.TextBoxFor(m => m.Customer.LastName)
@Html.ValidationMessageFor(m => m.Customer.LastName)
</td>
</tr>
<tr>
<td>@Html.LabelFor(m => m.Customer.Age)</td>
<td>
@Html.TextBoxFor(m => m.Customer.Age)
@Html.ValidationMessageFor(m => m.Customer.Age)
</td>
</tr>
<tr>
<td>@Html.LabelFor(m => m.Customer.PhoneNumber)</td>
<td width="350">
@Html.TextBoxFor(m => m.Phone1a, new { size="4", maxlength="3" })
@Html.TextBoxFor(m => m.Phone1b)
@Html.TextBoxFor(m => m.Phone1c)
<div>
@Html.ValidationMessageFor(m => m.Customer.PhoneNumber)
</div>
</td>
</tr>
<tr>
<td></td>
<td>
<input type="submit" value="Submit" /></td>
</tr>
</table>
}
वास्तव में अच्छे अंक। IsValid संपत्ति बनाने के बारे में अच्छा विचार। – SaltProgrammer