【问题标题】:Asp.net MVC Dynamically set TextAreaAsp.net MVC 动态设置 TextArea
【发布时间】:2014-07-22 13:24:34
【问题描述】:

我正在开发一个 Asp.net MVC5 应用程序。

我需要将一些 XML 写入文本区域,以便稍后在我的项目中由一些 JavaScript 对其进行解析。到目前为止,我已经将 XML 信息加载到 ViewBag 中,并且想知道如何使用这些信息动态设置文本区域。

我的控制器(索引):

        XmlDocument doc = new XmlDocument();
        doc.Load("C:\\Tasks.xml");
        ViewBag.xml = doc.InnerXml();

谢谢,任何帮助将不胜感激。

【问题讨论】:

  • <textarea> 中显示 XML 后,您是要编辑并保存它还是只需要它显示在那里?
  • 只需要它显示在那里,我将使用它作为负载,所以每次用户重新加载(包括第一次加载)时,都会从文本区域读取要显示的信息

标签: c# asp.net-mvc razor html-helper


【解决方案1】:
-- html form

    @Html.TextArea("xml")
    <input type="submit" value="Save" />

-- html form

发布操作

[HttpPost]
public Actionresult SomeAction(string xml){...}

更好的解决方案(使用强类型视图)

型号

public class XmlViewModel
{
    public string Xml { get; set; }
} 

控制器

public Actionresult SomeAction()
{
    XmlDocument doc = new XmlDocument();
    doc.Load("C:\\Tasks.xml");
    var model = new XmlViewModel
    {
        Xml = doc.InnerXml();
    }

    return View(model);
}

[HttpPost]
public Actionresult SomeAction(XmlViewModel model)
{
    ...       

    return View(model);
}

查看

@model XmlViewModel 

-- html form

    @Html.TextAreaFor(x => x.Xml)
    <input type="submit" value="Save" />

-- html form

【讨论】:

  • 谢谢,我会尝试使用模型实现更好的方法。一个问题,为什么我需要表单中的辅助函数?
  • 你不需要使用helpers,这是一个可选的,当然你可以使用纯html(
  • 我理解助手的使用,我的意思是,为什么我必须将@Html.textareafor 放在表单中?另外,我如何向这个文本区域添加一个 ID?
  • 你不必使用助手,如果使用@HtmlTextAreaFor(x=>x.Xml) 那么你的textarea id将是“Xml”,你可以在你的页面源代码中看到它。你也可以手动设置。阅读一些关于 html 助手的文章...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-16
  • 1970-01-01
  • 1970-01-01
  • 2017-10-18
相关资源
最近更新 更多