c# - 将整数转换为罗马数字的控制器方法
问题描述
需要控制器中的方法的帮助,该方法将通过表单获取整数,然后将整数转换为罗马数字并将其发布回网页。
到目前为止,这是我的控制器。
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Index(FormCollection form)
{
return View();
}
<h2>Numeral Converter</h2>
<fieldset>
<legend>Convert numbers to roman numerals</legend>
@using (Ajax.BeginForm("Index", "ConvertController",
new AjaxOptions { UpdateTargetId = "divInterestDeatils" }))
{
<div id="divInterestDeatils"></div>
<ol>
<li>
@Html.Label("Enter Number to Convert")
@Html.TextBox("myTextBox")
</li>
</ol>
<button>Convert</button>
}
</fieldset>
解决方案
这是一个工作代码示例:)
正如您在方法上看到的,OnConvertClicked
我将输入转换为数字并将其传递给我在下面创建的方法。此方法将返回罗马数字。在这行代码之后,你可以用它做任何你想做的事情,例如在文本框或标签中显示它
public void OnConvertClicked(object sender, EventArgs e)
{
//Button clicked
try
{
int number = Convert.ToInt32(myTextBox.Text); //convert to number
string romanNumber = ToRomanNumber(number); //Get roman number
}
catch (Exception ex)
{
//The user input was not a number...
myTextBox.Text = "Error";
}
}
public string ToRomanNumber(int num)
{
var listOfNum = new List<int>() {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};
var listOfRoman = new List<string>(){"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"};
var numToRoman = "";
for (int i = 0; i < listOfNum.Count; i++)
{
while (num >= listOfNum[i])
{
numToRoman += listOfRoman[i];
num -= listOfNum[i];
}
}
return numToRoman;
}
推荐阅读
- python - QDoubleSpinBox 接受点和逗号作为小数分隔符
- c# - 如何将消息放入死信并在天蓝色函数中经过一段时间后处理它
- ios - 'name':HttpErrorResponse 'message':来自 https://www......../details 的 Http 失败响应
- java - 在 Java 中限制 Web 套接字
- javascript - 断言 testcafe 中是否存在带有特定文本的 td DOM
- kendo-ui - 在 kendoTreeList 中过滤具有重复记录的数据
- axapta - 访问命令链 D365 上的方法变量
- sql - 动态水平聚合 (AVG)
- linux - 如何设置外部任务的状态?
- javascript - 如何停止在电子应用程序上创建空日志目录