将字符串数组发送到控制器 - MVC

时间:2018-01-24 01:27:31

标签: javascript asp.net-mvc asp.net-mvc-4

我对我一直在做的项目有疑问。 我尝试做一个简单的数学练习,你必须完成数字和操作,我的程序必须为用户动态创建文本框,这是因为有些情况下结果的长度为3个数字或2个,我的问题是我有这样的模型:

public class Sum
{
    public string num1 { get; set; }
    public string num2 { get; set; }
    public string[] numbers { get; set; }
    public int textBox { get; set; }
}

我有一个像这样的班级的模特:

public class Operations
{
    public Sum sum { get; set; }
    public Subtraction sub { get; set; }
    public string operation { get; set; }
    public string count { get; set; }
}

然后,在我的控制器中,当用户点击链接"练习"时,我有这个方法:

public ActionResult Exercises()
{
    Ejercicios_Primero objeto = new Ejercicios_Primero();
    string numero = objeto.numeros(75, 0, 100);
    string numero2 = objeto.numeros(20, 0, 100);
    string count = "1";
    int textBox = ((int.Parse(numero) + int.Parse(numero2)).ToString()).Length;
    return View(new Operations { operation = "sum", sum = new Sum { num1 = numero, num2 = "0" + numero2, textBox = textBox }, count = count });
}

paremeter textBox是要知道我将在表单上创建多少TextBox,我在javascript中有这样的代码:

<script>

createInputs = function () {
    var input = $('<input />').attr("type", "textbox").attr("name", "numbers");
    return input;
}

$(function () {
    var boxes = eval('@Model.sum.textBox');
    if (boxes != null) {
        $('#boxes').html("");
        for (var i = 0; i < boxes; i++){
            $('#boxes').append(createInputs());
        }
    }
})

因此,我有类似的内容

enter image description here

参数操作是让控制器在接收类型模型时知道使用什么方法&#34;操作&#34;,我的控制器中有下一个代码,模型作为参数:

public ActionResult Exercises(Operations model)
{
    Respuesta check = new Respuesta();

    switch (model.operation)
    {
        case "sum":
            string message = "";
            if (model.sum.numbers != null)
            {
                foreach (string inputValue in model.sum.numbers)
                {
                    message += inputValue + "\\n";
                }
                ModelState.AddModelError("", message);
                return View(model);
            }
            else
            {
                ModelState.AddModelError("", "Numbers is null");
                return View(model);
            }
        case "sub":
            check = Resta(int.Parse(model.sub.num1), int.Parse(model.sub.num2), int.Parse(model.sub.res1), int.Parse(model.sub.res2));
            if (!check.state)
            {
                ModelState.AddModelError("", check.message);
                return View(model);
            }
            else
            {
                Operations model2 = new Operations();
                Ejercicios_Primero objeto = new Ejercicios_Primero();
                string numero = objeto.numeros(75, 0, 100);
                model2.operation = "sum";
                model2.sum = new Sum();
                model2.sum.num1 = numero;
                numero = objeto.numeros(20, 0, 100);
                model2.sum.num2 = "0" + numero;
                return View(model2);
            }
    }
    return View();
}

在这种情况下的变量检查,无关紧要,我遇到的问题是当我收到模型并尝试访问数据时,我的model.sum.numbers完全是空的,我不会&# 39;我知道为什么我在这个页面上做了javascript基础:https://www.aspsnippets.com/Articles/Implement-Dynamic-TextBox-controls-with-Add-Remove-Button-in-ASPNet-MVC.aspx

注意:我知道我没有对阵列做任何事情,只是为了测试。

0 个答案:

没有答案