<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://forums.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>ASP.NET MVC</title><link>http://forums.asp.net/1146.aspx</link><description>Discussions regarding Model-View-Controller (MVC) support in ASP.NET.  &lt;a href="http://forums.asp.net/1215.aspx"&gt;T4MVC subforum&lt;/a&gt;</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Re: Issue with RadioButton after Model is updated (e.g. via TryUpdateModel)</title><link>http://forums.asp.net/thread/2704610.aspx</link><pubDate>Fri, 24 Oct 2008 14:52:40 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:2704610</guid><dc:creator>tgmdbm</dc:creator><author>tgmdbm</author><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/2704610.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=1146&amp;PostID=2704610</wfw:commentRss><description>&lt;p&gt;Agreed !!&lt;/p&gt;</description></item><item><title>Issue with RadioButton after Model is updated (e.g. via TryUpdateModel)</title><link>http://forums.asp.net/thread/2703500.aspx</link><pubDate>Fri, 24 Oct 2008 03:25:21 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:2703500</guid><dc:creator>sia123</dc:creator><author>sia123</author><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/2703500.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=1146&amp;PostID=2703500</wfw:commentRss><description>&lt;p&gt;Let&amp;#39;s say I have the following HTML:&lt;/p&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;td&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&amp;nbsp; &amp;lt;%&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#800000" size="2"&gt;&lt;font color="#800000" size="2"&gt;Html&lt;/font&gt;&lt;/font&gt;&lt;font color="#800080" size="2"&gt;&lt;font color="#800080" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font color="#800000" size="2"&gt;&lt;font color="#800000" size="2"&gt;RadioButton&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;(&amp;quot;UsePaybackScheme&amp;quot;, &lt;/font&gt;&lt;font color="#000080" size="2"&gt;&lt;font color="#000080" size="2"&gt;true&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;) %&amp;gt;Yes&lt;br /&gt;&amp;nbsp; &amp;lt;%&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#800000" size="2"&gt;&lt;font color="#800000" size="2"&gt;Html&lt;/font&gt;&lt;/font&gt;&lt;font color="#800080" size="2"&gt;&lt;font color="#800080" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font color="#800000" size="2"&gt;&lt;font color="#800000" size="2"&gt;RadioButton&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;(&amp;quot;UsePaybackScheme&amp;quot;, &lt;/font&gt;&lt;font color="#000080" size="2"&gt;&lt;font color="#000080" size="2"&gt;false&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;)%&amp;gt;No&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;td&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;UsePaybackScheme&amp;nbsp;&lt;/font&gt;is a property that appears in my model.&lt;/p&gt;
&lt;p&gt;Everything is fine when the view is loaded, the correct value from the model&amp;nbsp;is matched against one of the radio buttons and the correct&amp;nbsp;one is selected/checked.&amp;nbsp;When viewed the source of the HTML generated each checkbox has correct value: one &amp;quot;true&amp;quot; the other &amp;quot;false&amp;quot;&lt;/p&gt;
&lt;p&gt;However&amp;nbsp;when the view form is posted and inside the action you do a &lt;font color="#800000" size="2"&gt;&lt;font color="#800000" size="2"&gt;TryUpdateModel&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;font color="#800000" size="2"&gt;&lt;font color="#800000" size="2"&gt;model&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;) &lt;/font&gt;call, and the view is re-displayed (due to other validation errors). Both of the above radio buttons will have the same value, which is the attempted value that you posted. For example, if YES was selected then the value re-rendered for both above radion buttons is &amp;quot;true&amp;quot;.&lt;/p&gt;
&lt;p&gt;Consequently I looked at the code for Input Checkbox extension. If you look at InputHelper extension (MVC Beta) method in &lt;font color="#800000" size="2"&gt;&lt;font color="#800000" size="2"&gt;System&lt;/font&gt;&lt;/font&gt;&lt;font color="#800080" size="2"&gt;&lt;font color="#800080" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font color="#800000" size="2"&gt;&lt;font color="#800000" size="2"&gt;Web&lt;/font&gt;&lt;/font&gt;&lt;font color="#800080" size="2"&gt;&lt;font color="#800080" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font color="#800000" size="2"&gt;&lt;font color="#800000" size="2"&gt;Mvc&lt;/font&gt;&lt;/font&gt;&lt;font color="#800080" size="2"&gt;&lt;font color="#800080" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font color="#800000" size="2"&gt;&lt;font color="#800000" size="2"&gt;Html.&lt;font color="#01688f" size="2"&gt;&lt;font color="#01688f" size="2"&gt;InputExtensions&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt; you notice the lines:&lt;/p&gt;&lt;font color="#000080" size="2"&gt;&lt;font color="#000080" size="2"&gt;
&lt;p&gt;string&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#800000" size="2"&gt;&lt;font color="#800000" size="2"&gt;attemptedValue&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#800080" size="2"&gt;&lt;font color="#800080" size="2"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#800000" size="2"&gt;&lt;font color="#800000" size="2"&gt;htmlHelper&lt;/font&gt;&lt;/font&gt;&lt;font color="#800080" size="2"&gt;&lt;font color="#800080" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font color="#800000" size="2"&gt;&lt;font color="#800000" size="2"&gt;GetModelAttemptedValue&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;font color="#800000" size="2"&gt;&lt;font color="#800000" size="2"&gt;name&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;);&lt;br /&gt;&lt;/font&gt;&lt;font color="#000080" size="2"&gt;&lt;font color="#000080" size="2"&gt;if&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; (&lt;/font&gt;&lt;font color="#800000" size="2"&gt;&lt;font color="#800000" size="2"&gt;isCheckBox&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;) {&lt;br /&gt;&amp;nbsp; &lt;/font&gt;&lt;font color="#008000" size="2"&gt;&lt;font color="#008000" size="2"&gt;// Helpers that take isChecked as parameter should never look at ViewData&lt;br /&gt;&amp;nbsp; &lt;/font&gt;&lt;/font&gt;&lt;font color="#000080" size="2"&gt;&lt;font color="#000080" size="2"&gt;if&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; (&lt;/font&gt;&lt;font color="#800000" size="2"&gt;&lt;font color="#800000" size="2"&gt;useViewData&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="#800000" size="2"&gt;&lt;font color="#800000" size="2"&gt;isChecked&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#800080" size="2"&gt;&lt;font color="#800080" size="2"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#800000" size="2"&gt;&lt;font color="#800000" size="2"&gt;htmlHelper&lt;/font&gt;&lt;/font&gt;&lt;font color="#800080" size="2"&gt;&lt;font color="#800080" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font color="#800000" size="2"&gt;&lt;font color="#800000" size="2"&gt;EvalBoolean&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;font color="#800000" size="2"&gt;&lt;font color="#800000" size="2"&gt;name&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;);&lt;br /&gt;&amp;nbsp; } &lt;br /&gt;&amp;nbsp; &lt;/font&gt;&lt;font color="#800000" size="2"&gt;&lt;font color="#800000" size="2"&gt;tagBuilder&lt;/font&gt;&lt;/font&gt;&lt;font color="#800080" size="2"&gt;&lt;font color="#800080" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font color="#800000" size="2"&gt;&lt;font color="#800000" size="2"&gt;MergeAttribute&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;(&amp;quot;value&amp;quot;, &lt;/font&gt;&lt;font color="#01688f" size="2"&gt;&lt;font color="#01688f" size="2"&gt;Convert&lt;/font&gt;&lt;/font&gt;&lt;font color="#800080" size="2"&gt;&lt;font color="#800080" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font color="#800000" size="2"&gt;&lt;font color="#800000" size="2"&gt;ToString&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;font color="#800000" size="2"&gt;&lt;font color="#800000" size="2"&gt;value&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;, &lt;/font&gt;&lt;font color="#01688f" size="2"&gt;&lt;font color="#01688f" size="2"&gt;CultureInfo&lt;/font&gt;&lt;/font&gt;&lt;font color="#800080" size="2"&gt;&lt;font color="#800080" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font color="#800000" size="2"&gt;&lt;font color="#800000" size="2"&gt;CurrentUICulture&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;));&lt;br /&gt;}&lt;br /&gt;&lt;/font&gt;&lt;font color="#000080" size="2"&gt;&lt;font color="#000080" size="2"&gt;else&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; {&lt;br /&gt;&lt;/font&gt;&lt;font color="#800000" size="2"&gt;&lt;font color="#800000" size="2"&gt;tagBuilder&lt;/font&gt;&lt;/font&gt;&lt;font color="#800080" size="2"&gt;&lt;font color="#800080" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font color="#800000" size="2"&gt;&lt;font color="#800000" size="2"&gt;MergeAttribute&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;(&amp;quot;value&amp;quot;, &lt;/font&gt;&lt;font color="#800000" size="2"&gt;&lt;font color="#800000" size="2"&gt;attemptedValue&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#800080" size="2"&gt;&lt;font color="#800080" size="2"&gt;??&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; ((&lt;/font&gt;&lt;font color="#800000" size="2"&gt;&lt;font color="#800000" size="2"&gt;useViewData&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;) &lt;/font&gt;&lt;font color="#800080" size="2"&gt;&lt;font color="#800080" size="2"&gt;?&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#800000" size="2"&gt;&lt;font color="#800000" size="2"&gt;htmlHelper&lt;/font&gt;&lt;/font&gt;&lt;font color="#800080" size="2"&gt;&lt;font color="#800080" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font color="#800000" size="2"&gt;&lt;font color="#800000" size="2"&gt;EvalString&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;font color="#800000" size="2"&gt;&lt;font color="#800000" size="2"&gt;name&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;) : &lt;/font&gt;&lt;font color="#01688f" size="2"&gt;&lt;font color="#01688f" size="2"&gt;Convert&lt;/font&gt;&lt;/font&gt;&lt;font color="#800080" size="2"&gt;&lt;font color="#800080" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font color="#800000" size="2"&gt;&lt;font color="#800000" size="2"&gt;ToString&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;font color="#800000" size="2"&gt;&lt;font color="#800000" size="2"&gt;value&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;,&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;/font&gt;&lt;font color="#01688f" size="2"&gt;&lt;font color="#01688f" size="2"&gt;CultureInfo&lt;/font&gt;&lt;/font&gt;&lt;font color="#800080" size="2"&gt;&lt;font color="#800080" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font color="#800000" size="2"&gt;&lt;font color="#800000" size="2"&gt;CurrentUICulture&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;)));&lt;br /&gt;}&lt;/p&gt;&lt;/font&gt;
&lt;p&gt;I believe where it&amp;nbsp;is coded:&amp;nbsp;&lt;font color="#000080"&gt;if&lt;/font&gt;&lt;font size="2"&gt; (&lt;/font&gt;&lt;font color="#800000" size="2"&gt;&lt;font color="#800000" size="2"&gt;isCheckBox&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;)&amp;nbsp;&lt;/font&gt;it should instead&amp;nbsp;be: &lt;font color="#000080"&gt;if&lt;/font&gt;&lt;font size="2"&gt; (&lt;/font&gt;&lt;font color="#800000" size="2"&gt;&lt;font color="#800000" size="2"&gt;isCheckBox || isRadio&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;)&amp;nbsp;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;As even the comment&amp;nbsp;in the existing code suggests that for radio buttons it should also behave like checkboxes. As it doesn&amp;#39;t make sence for all radio buttons with the same name to use the same attempted value as that would cause problems when the form is re-submited as this time all values are the same and cannot be distinguished.&lt;/p&gt;
&lt;p&gt;Am I correct to assume that the above is a bug? That indeed it should be &lt;font color="#000080"&gt;if&lt;/font&gt;&lt;font size="2"&gt; (&lt;/font&gt;&lt;font color="#800000" size="2"&gt;&lt;font color="#800000" size="2"&gt;isCheckBox || isRadio&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;)&lt;/font&gt;. Has anyone has a explanation that it should be like it is in the current code and that I should be doing things differently.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Since the above has been agreed that is a bug. I&amp;#39;ve&amp;nbsp;built a new version of the MVC with the change above [ changed &lt;font color="#000080"&gt;if&lt;/font&gt;&lt;font size="2"&gt; (&lt;/font&gt;&lt;font color="#800000" size="2"&gt;&lt;font color="#800000" size="2"&gt;isCheckBox&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;)&lt;/font&gt;&amp;nbsp;to&amp;nbsp;&lt;font color="#000080"&gt;if&lt;/font&gt;&lt;font size="2"&gt; (&lt;/font&gt;&lt;font color="#800000" size="2"&gt;&lt;font color="#800000" size="2"&gt;isCheckBox || isRadio&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;) &lt;/font&gt;].&amp;nbsp;With this new build&amp;nbsp;I&amp;#39;ve had no issues&amp;nbsp;(and without any side effects). I&amp;#39;m using this workaround until the next version of the MVC is released.&lt;/p&gt;</description></item></channel></rss>