這是我查看相關代碼:顯示而不是返回查看標籤
@Html.LabelFor(model => model.nickName)
@Html.TextBoxFor(model => model.nickName, new { @class = "RegisterControls" })
<br /><br />
@Html.LabelFor(model => model.email)
@Html.TextBoxFor(model => model.email, new { @class = "RegisterControls" })
<br /><br />
@Html.LabelFor(model => model.password)
@Html.TextBoxFor(model => model.password, new { @class = "RegisterControls" })
和行動方法:
public ActionResult RegisterNewUser(string uName, string email, string password)
{
ViewBag.Message = "Register";
if (!users.RegisterUser(uName, email, password))
{
ViewBag.DeniedMsg = "A user with that email already exists";
return; //This doesn't work, as I should return a View
}
return PartialView("_Register");
}
如果在註冊中已經存在的電子郵件地址的用戶類型(並點擊「創建帳戶」鏈接時,我想添加一個標籤,說明電子郵件已存在,並且不返回整個視圖。請參閱我的操作方法以獲得(希望)清晰度。
創建帳戶的鏈接:
@Ajax.ActionLink("Create account", "CheckifUserEmailExists", "RegisteredUsers", new AjaxOptions { UpdateTargetId = "updaterDiv" }, new { @class = "actionButtons" })
其實,更普遍。如果某人在文本框中輸入某些內容,則會在適當的控制器中調用操作方法。但是這個Action方法總是返回一個視圖。但是,如果您只想向該用戶顯示一條消息(例如說「創建賬戶」)並保持相同的觀點,該怎麼辦?你如何處理這個問題?我不能這樣做,因爲我必須返回一個視圖,但我想保持相同的視圖,並在那裏顯示消息
您將密碼發送到GET方法,以便任何人都可以通過查看瀏覽器歷史記錄來查看用戶密碼!遵循正常的模式並進行POST。您可以使用'[Remote]'屬性在客戶端處理電子郵件(請參閱[如何:在ASP.NET MVC中實現遠程驗證](https://msdn.microsoft.com/zh-cn/library/gg508808 %28VS.98%29.aspx)),但你首先需要學習一些基礎知識。在VS中創建新應用程序時,研究'AccountController'中的代碼。 – 2015-02-23 22:24:47
只需將您的'RegisterNewUser'操作更改爲接受'httppost',以便您不需要具有參數,因爲發佈的對象將在Request中可用。然後再將該對象再次傳遞給你的局部視圖(你的局部視圖必須再次被強制輸入),你會看到前一個視圖。輸入的值將再次顯示:) – BabyDuck 2015-02-25 05:33:47