如何将textBox的值发送到字符串变量?
我用html查看:
<body>
<div id="CalculatorSpace">
<form name="Calc">
<input type="text" name="textBox" id="textBox" value=""/>
<table>
<tr>
<td><input type="button" name="btnSeven" id="btnSeven" value="7" /></td>
<td><input type="button" id="btnEight" value="8" /></td>
<td><input type="button" id="btnNine" value="9" /></td>
<td><input type="button" id="btnDelete" value="DEL" /></td>
<td><input type="button" id="btnClear" value="CLR" /></td>
</tr>
<tr>
<td><input type="button" id="btnFour" value="4" /></td>
<td><input type="button" id="btnFive" value="5" /></td>
<td><input type="button" id="btnSix" value="6" /></td>
<td><input type="button" id="btnMultiply" value="*" /></td>
<td><input type="button" id="btnDivide" value="/" /></td>
</tr>
<tr>
<td><input type="button" id="btnOne" value="1" /></td>
<td><input type="button" id="btnTwo" value="2" /></td>
<td><input type="button" id="btnThree" value="3" /></td>
<td><input type="button" id="btnPlus" value="+" /></td>
<td><input type="button" id="btnMinus" value="-" /></td>
</tr>
<tr>
<td><input type="button" id="btnZero" value="0" /></td>
<td><input type="button" id="btnDot" value="." /></td>
<td><input type="button" id="btnEqual" value="=" /></td>
<td><input type="button" id="btnLBracket" value="(" /></td>
<td><input type="button" id="btnRBracket" value=")" /></td>
</tr>
</table>
<script>
window.onload = function () {
document.getElementById('btnSeven').addEventListener('click', function () {
document.getElementById('textBox').value = document.getElementById('textBox').value + document.getElementById('btnSeven').value;
});
document.getElementById('btnEight').addEventListener('click', function () {
document.getElementById('textBox').value = document.getElementById('textBox').value + document.getElementById('btnEight').value;
});
document.getElementById('btnNine').addEventListener('click', function () {
document.getElementById('textBox').value = document.getElementById('textBox').value + document.getElementById('btnNine').value;
});
document.getElementById('btnDelete').addEventListener('click', function () {
document.getElementById('textBox').value = document.getElementById('textBox').value + document.getElementById('btnDelete').value;
});
document.getElementById('btnClear').addEventListener('click', function () {
document.getElementById('textBox').value = document.getElementById('textBox').value + document.getElementById('btnClear').value;
});
document.getElementById('btnFour').addEventListener('click', function () {
document.getElementById('textBox').value = document.getElementById('textBox').value + document.getElementById('btnFour').value;
});
document.getElementById('btnFive').addEventListener('click', function () {
document.getElementById('textBox').value = document.getElementById('textBox').value + document.getElementById('btnFive').value;
});
document.getElementById('btnSix').addEventListener('click', function () {
document.getElementById('textBox').value = document.getElementById('textBox').value + document.getElementById('btnSix').value;
});
document.getElementById('btnMultiply').addEventListener('click', function () {
document.getElementById('textBox').value = document.getElementById('textBox').value + document.getElementById('btnMultiply').value;
});
document.getElementById('btnDivide').addEventListener('click', function () {
document.getElementById('textBox').value = document.getElementById('textBox').value + document.getElementById('btnDivide').value;
});
document.getElementById('btnOne').addEventListener('click', function () {
document.getElementById('textBox').value = document.getElementById('textBox').value + document.getElementById('btnOne').value;
});
document.getElementById('btnTwo').addEventListener('click', function () {
document.getElementById('textBox').value = document.getElementById('textBox').value + document.getElementById('btnTwo').value;
});
document.getElementById('btnThree').addEventListener('click', function () {
document.getElementById('textBox').value = document.getElementById('textBox').value + document.getElementById('btnThree').value;
});
document.getElementById('btnPlus').addEventListener('click', function () {
document.getElementById('textBox').value = document.getElementById('textBox').value + document.getElementById('btnPlus').value;
});
document.getElementById('btnMinus').addEventListener('click', function () {
document.getElementById('textBox').value = document.getElementById('textBox').value + document.getElementById('btnMinus').value;
});
document.getElementById('btnZero').addEventListener('click', function () {
document.getElementById('textBox').value = document.getElementById('textBox').value + document.getElementById('btnZero').value;
});
document.getElementById('btnDot').addEventListener('click', function () {
document.getElementById('textBox').value = document.getElementById('textBox').value + document.getElementById('btnDot').value;
});
document.getElementById('btnEqual').addEventListener('click', function () {
document.getElementById('textBox').value = document.getElementById('textBox').value + document.getElementById('btnEqual').value;
});
document.getElementById('btnLBracket').addEventListener('click', function () {
document.getElementById('textBox').value = document.getElementById('textBox').value + document.getElementById('btnLBracket').value;
});
document.getElementById('btnRBracket').addEventListener('click', function () {
document.getElementById('textBox').value = document.getElementById('textBox').value + document.getElementById('btnRBracket').value;
});
}
</script>
</form>
</div>
我有控制器:
public class CalculatorController : Controller
{
//
// GET: /Calculator/
public ActionResult Index()
{
return View();
}
//GET: /Calculator/Calculate
public ActionResult Calculate()
{
string expression;
return View();
}
}
现在我想要的是将textBox的值发送到字符串表达式,将表达式解析为“5 + 5”并将值结果发送到textBox。一切都必须通过点击按钮btnEqual来完成。怎么做?
答案 0 :(得分:0)
该代码在服务器上运行,而不是在客户端上运行。要访问服务器上的文本框,必须先将其定义为可在服务器上访问:
<input runat="server" type="text" name="textBox" id="textBox" value=""/>
然后通过访问Text属性获得文本输入:
string expression = textBox.Text;
虽然这需要回发,但现在这样的事情通常是在javascript中完成的。
注意:未经测试的代码,这可能仅适用于页面加载。
答案 1 :(得分:0)
这将为您提供将数据发送到控制器的基本思路。如果要获取控制器中TextBox的值,则可以在提交时将模型发送给控制器。
首先在视图中创建表单:
@model MVCApp.Models.ModelClassName
@using (Html.BeginForm("ActionName", "Calculator",
FormMethod.Post))
{
//codeing textboxes etc
<input type="submit" value="Upload File" id="btnSubmit" />
}
现在在控制器中创建一个Action方法
[HttpPost]
public ActionResult ActionName(ModelClassName model)
{
//model is now containg all the values of controls present in the view
return View();
}
注意:这是您可以将数据发送回控制器的正常程序。
您也可以通过使用jquery在客户端执行计算器中的所有操作并同时显示结果来执行相同操作。此模式将阻止服务器上的命中,您的应用程序将快速执行。