我有部分联系方式.目前索引视图显示联系人详细信息的此部分视图.部分视图内部有一个保存按钮,用于保存编辑的数据.保存编辑后的数据时会对年龄进行验证.这很好.
每当用户编辑年龄并保存时,我需要在主视图上显示相应的占星预测.我们如何实现它?
public class ContactEntity { public int ContactID { get; set; } public string ContactName { get; set; } [Range(18,50,ErrorMessage = "Must be between 18 and 50")] public int ContactAge { get; set; } } public class AgeHoroscope { public int Age { get; set; } public string HoroscopePrediction { get; set; } }
//家庭控制器
namespace MYContactEditPartialViewTEST.Controllers { public class HomeController : Controller { List<AgeHoroscope> horoList = new List<AgeHoroscope>() { new AgeHoroscope{Age=16,HoroscopePrediction="You are confused"},new AgeHoroscope{Age=26,HoroscopePrediction="You are very brilliant"},new AgeHoroscope{Age=27,HoroscopePrediction="You are practical"} }; public ActionResult Index() { AgeHoroscope selectedHoro = horoList[1]; return View(selectedHoro); } } }
//联系控制器
namespace MYContactEditPartialViewTEST.Controllers { public class ContactController : Controller { public PartialViewResult MyContactDetailEdit() { Thread.Sleep(500); return PartialView(GetContact()); } [HttpPost] public PartialViewResult MyContactDetailEdit(string conatcclick) { //Save to database Thread.Sleep(500); return PartialView(GetContact()); } private ContactEntity GetContact() { ContactEntity contactEntity = new ContactEntity(); contactEntity.ContactID = 1; contactEntity.ContactName = "Lijo"; contactEntity.ContactAge = 26; return contactEntity; } } }
//Index.cshtml
@model MYContactEditPartialViewTEST.AgeHoroscope @{ ViewBag.Title = "Index"; } <script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"> </script> <script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script> <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script> <h2> Index</h2> <div> <a>Your age is <b>@Html.DisplayFor(x => x.Age) </b>and the prediction is <b>" @Html.DisplayFor(x => x.HoroscopePrediction) " </b></a> <br /> </div> <div style="border: 3px solid Teal"> @Html.Action("MyContactDetailEdit","contact") </div>
// MyContactDetailEdit.cshtml
@model MYContactEditPartialViewTEST.ContactEntity @using (Html.BeginForm()) { @Html.ValidationSummary(true) <h3>MyContactDetailEdit PARTIAL</h3> <div> @Html.HiddenFor(x => x.ContactID) <br /> <div style="font-weight:bold"> Name: <br /> </div> @Html.DisplayFor(x => x.ContactName) <br /> <br /> <div style="font-weight:bold"> Age <br /> </div> @Html.EditorFor(x => x.ContactAge) @Html.ValidationMessageFor(model => model.ContactAge) <br /> <br /> </div> <input type="submit" id="saveButton" value="Save" /> }
读
> ASP.Net MVC Passing multiple parameters to a view
> ASP.Net MVC 3 RC2,Partial Views Form Handling
解决方法
我想只使用jQuery做ajax post,然后直接更改父视图客户端