我在Label
上获得了Textbox
,Button
和Page
。
在Textbox
中输入值时,我想在Label
上显示某些内容。 Button
也获取该信息并运行一些代码。
在ASP.NET中,我只是在这三个控件周围添加一个Ajax UpdatePanel
,在TextBox
上添加两个事件。 TextChange
和Button.Click
并对Postback做出反应。
我如何在MVC中执行此操作?
答案 0 :(得分:1)
MVC和webforms的生命周期都不同。 MVC不是关于服务器控件.... viewstate ...没有Web窗体中的页面生命周期事件...
What is the 'page lifecycle' of an ASP.NET MVC page, compared to ASP.NET WebForms? 希望这会有所帮助..
现在谈到你的观点。
如果要在文本框中输入值时在标签中显示某些内容,则必须使用客户端脚本,请参阅下面的示例
的javascript
<script type="text/javascript" language="javascript">
function textCounter(field, field2, maxlimit) {
var countfield = document.getElementById(field2);
if (field.value.length > maxlimit) {
field.value = field.value.substring(0, maxlimit);
return false;
} else {
countfield.value = maxlimit - field.value.length;
}
}
</script>
您的Html页面
<%using (Html.BeginForm("Index", "Account", FormMethod.Post)) // here index is a ActionName, Account is a controller name
{%>
<input type="text" name="Message" onkeyup="textCounter(this,'counter',208)"/>
<label><input disabled maxlength="3" size="3" value="208" id="counter" /></label>
<input type="submit" value="Send" />
<%}%>
下面
textbox中的keyup事件的textCounter()函数将在label中显示值
提交按钮将提交表单,在控制器“帐户”上调用操作“索引”,请参阅下面的操作行为
public class AccountController : Controller
{
[HttpPost]
public ActionResult index(FormCollection result)
{
string TextBoxValue=result["Message"];
return view("yourviewname");
}
}
我希望这个例子可以帮助你..